@brianlovin/hn-cli 0.1.8 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cli.js +126 -90
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -1,76 +1,76 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
3
|
-
import{Buffer as F_}from"buffer";import{EventEmitter as __}from"events";import{EventEmitter as V_}from"events";import{EventEmitter as h_}from"events";import{resolve as jq,dirname as Uq}from"path";import{fileURLToPath as Gq}from"url";var qY="./highlights-ghv9g403.scm";var gY="./tree-sitter-javascript-nd0q4pe9.wasm";var EY="./highlights-eq9cgrbb.scm";var FY="./tree-sitter-typescript-zxjzwt75.wasm";var KY="./highlights-r812a2qc.scm";var ZY="./tree-sitter-markdown-411r6y9b.wasm";var jY="./injections-73j83es3.scm";var UY="./highlights-x6tmsnaa.scm";var GY="./tree-sitter-markdown_inline-j5349f42.wasm";var YY="./highlights-hk7bwhj4.scm";var QY="./tree-sitter-zig-e78zbjpm.wasm";import{resolve as $Y,isAbsolute as C_,parse as k_}from"path";import{existsSync as D_}from"fs";import{basename as y_,join as b_}from"path";import XY from"os";import jg from"path";import{EventEmitter as d_}from"events";import{dlopen as l_,toArrayBuffer as XE,JSCallback as VY,ptr as qA}from"bun:ffi";import{existsSync as i_}from"fs";import{EventEmitter as t_}from"events";import{toArrayBuffer as vK,ptr as WY}from"bun:ffi";import{ptr as wg,toArrayBuffer as Sj}from"bun:ffi";import{ptr as q9,toArrayBuffer as g9}from"bun:ffi";import{EventEmitter as j9}from"events";import Q9 from"util";import{EventEmitter as _Q}from"events";import{Console as M9}from"console";import _9 from"fs";import $9 from"path";import yY from"util";import{Writable as X9}from"stream";import{EventEmitter as H9}from"events";import{EventEmitter as N9}from"events";var nM=Object.defineProperty;var rM=(A,q)=>{for(var g in q)nM(A,g,{get:q[g],enumerable:!0,configurable:!0,set:(E)=>q[g]=()=>E})};var vY={};rM(vY,{default:()=>lK,Wrap:()=>fq,Unit:()=>Qq,PositionType:()=>mq,Overflow:()=>vq,NodeType:()=>Cj,MeasureMode:()=>cq,LogLevel:()=>Dg,Justify:()=>mA,Gutter:()=>Oq,FlexDirection:()=>qq,ExperimentalFeature:()=>mY,Errata:()=>kg,Edge:()=>t,Display:()=>Qg,Direction:()=>P6,Dimension:()=>wj,BoxSizing:()=>Bj,Align:()=>jA});var oM=(()=>{var A=import.meta.url;return function(q){q=q||{};var g;g||(g=typeof q<"u"?q:{});var E,F;g.ready=new Promise(function(G,Q){E=G,F=Q});var K=Object.assign({},g),Z="";typeof document<"u"&&document.currentScript&&(Z=document.currentScript.src),A&&(Z=A),Z.indexOf("blob:")!==0?Z=Z.substr(0,Z.replace(/[?#].*/,"").lastIndexOf("/")+1):Z="";var j=g.print||console.log.bind(console),U=g.printErr||console.warn.bind(console);Object.assign(g,K),K=null;var O;g.wasmBinary&&(O=g.wasmBinary);var Y=g.noExitRuntime||!0;typeof WebAssembly!="object"&&RA("no native wasm support detected");var M,J=!1;function $(G,Q,X){X=Q+X;for(var H="";!(Q>=X);){var W=G[Q++];if(!W)break;if(W&128){var P=G[Q++]&63;if((W&224)==192)H+=String.fromCharCode((W&31)<<6|P);else{var B=G[Q++]&63;W=(W&240)==224?(W&15)<<12|P<<6|B:(W&7)<<18|P<<12|B<<6|G[Q++]&63,65536>W?H+=String.fromCharCode(W):(W-=65536,H+=String.fromCharCode(55296|W>>10,56320|W&1023))}}else H+=String.fromCharCode(W)}return H}var _,T,x,V,a,k,C,u,c;function R(){var G=M.buffer;_=G,g.HEAP8=T=new Int8Array(G),g.HEAP16=V=new Int16Array(G),g.HEAP32=k=new Int32Array(G),g.HEAPU8=x=new Uint8Array(G),g.HEAPU16=a=new Uint16Array(G),g.HEAPU32=C=new Uint32Array(G),g.HEAPF32=u=new Float32Array(G),g.HEAPF64=c=new Float64Array(G)}var z,n=[],m=[],gA=[];function FA(){var G=g.preRun.shift();n.unshift(G)}var YA=0,PA=null,bA=null;function RA(G){if(g.onAbort)g.onAbort(G);throw G="Aborted("+G+")",U(G),J=!0,G=new WebAssembly.RuntimeError(G+". Build with -sASSERTIONS for more info."),F(G),G}function Hq(G){return G.startsWith("data:application/octet-stream;base64,")}var zq="data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMk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AWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAHIQkDQCAJLQABQSVHBEAgCSEBDAILIAdBAWohByAJLQACIQogCUECaiIBIQkgCkElRg0ACwsgByANayIHIA5B/////wdzIhhKDQcgAARAIAAgDSAHECYLIAcNBiAIIAE2AkwgAUEBaiEHQX8hEgJAIAEsAAEiChBXRQ0AIAEtAAJBJEcNACABQQNqIQcgCkEwayESQQEhFQsgCCAHNgJMQQAhDAJAIAcsAAAiCUEgayIBQR9LBEAgByEKDAELIAchCkEBIAF0IgFBidEEcUUNAANAIAggB0EBaiIKNgJMIAEgDHIhDCAHLAABIglBIGsiAUEgTw0BIAohB0EBIAF0IgFBidEEcQ0ACwsCQCAJQSpGBEACfwJAIAosAAEiARBXRQ0AIAotAAJBJEcNACABQQJ0IARqQcABa0EKNgIAIApBA2ohCUEBIRUgCiwAAUEDdCADakGAA2soAgAMAQsgFQ0GIApBAWohCSAARQRAIAggCTYCTEEAIRVBACETDAMLIAIgAigCACIBQQRqNgIAQQAhFSABKAIACyETIAggCTYCTCATQQBODQFBACATayETIAxBgMAAciEMDAELIAhBzABqEIkBIhNBAEgNCCAIKAJMIQkLQQAhB0F/IQsCfyAJLQAAQS5HBEAgCSEBQQAMAQsgCS0AAUEqRgRAAn8CQCAJLAACIgEQV0UNACAJLQADQSRHDQAgAUECdCAEakHAAWtBCjYCACAJQQRqIQEgCSwAAkEDdCADakGAA2soAgAMAQsgFQ0GIAlBAmohAUEAIABFDQAaIAIgAigCACIKQQRqNgIAIAooAgALIQsgCCABNgJMIAtBf3NBH3YMAQsgCCAJQQFqNgJMIAhBzABqEIkBIQsgCCgCTCEBQQELIQ8DQCAHIRFBHCEKIAEiECwAACIHQfsAa0FGSQ0JIBBBAWohASAHIBFBOmxqQf8qai0AACIHQQFrQQhJDQALIAggATYCTAJAAkAgB0EbRwRAIAdFDQsgEkEATgRAIAQgEkECdGogBzYCACAIIAMgEkEDdGopAwA3A0AMAgsgAEUNCCAIQUBrIAcgAiAGEIcBDAILIBJBAE4NCgtBACEHIABFDQcLIAxB//97cSIJIAwgDEGAwABxGyEMQQAhEkGPCSEWIBQhCgJAAkACQAJ/AkACQAJAAkACfwJAAkACQAJAAkACQAJAIBAsAAAiB0FfcSAHIAdBD3FBA0YbIAcgERsiB0HYAGsOIQQUFBQUFBQUFA4UDwYODg4UBhQUFBQCBQMUFAkUARQUBAALAkAgB0HBAGsOBw4UCxQODg4ACyAHQdMARg0JDBMLIAgpA0AhGUGPCQwFC0EAIQcCQAJAAkACQAJAAkACQCARQf8BcQ4IAAECAwQaBQYaCyAIKAJAIA42AgAMGQsgCCgCQCAONgIADBgLIAgoAkAgDqw3AwAMFwsgCCgCQCAOOwEADBYLIAgoAkAgDjoAAAwVCyAIKAJAIA42AgAMFAsgCCgCQCAOrDcDAAwTC0EIIAsgC0EITRshCyAMQQhyIQxB+AAhBwsgFCENIAgpA0AiGVBFBEAgB0EgcSEQA0AgDUEBayINIBmnQQ9xQZAvai0AACAQcjoAACAZQg9WIQkgGUIEiCEZIAkNAAsLIAxBCHFFIAgpA0BQcg0DIAdBBHZBjwlqIRZBAiESDAMLIBQhByAIKQNAIhlQRQRAA0AgB0EBayIHIBmnQQdxQTByOgAAIBlCB1YhDSAZQgOIIRkgDQ0ACwsgByENIAxBCHFFDQIgCyAUIA1rIgdBAWogByALSBshCwwCCyAIKQNAIhlCAFMEQCAIQgAgGX0iGTcDQEEBIRJBjwkMAQsgDEGAEHEEQEEBIRJBkAkMAQtBkQlBjwkgDEEBcSISGwshFiAZIBQQRyENCyAPQQAgC0EASBsNDiAMQf//e3EgDCAPGyEMIAgpA0AiGUIAUiALckUEQCAUIQ1BACELDAwLIAsgGVAgFCANa2oiByAHIAtIGyELDAsLQQAhDAJ/Qf////8HIAsgC0H/////B08bIgoiEUEARyEQAkACfwJAAkAgCCgCQCIHQY4lIAcbIg0iD0EDcUUgEUVyDQADQCAPLQAAIgxFDQIgEUEBayIRQQBHIRAgD0EBaiIPQQNxRQ0BIBENAAsLIBBFDQICQCAPLQAARSARQQRJckUEQANAIA8oAgAiB0F/cyAHQYGChAhrcUGAgYKEeHENAiAPQQRqIQ8gEUEEayIRQQNLDQALCyARRQ0DC0EADAELQQELIRADQCAQRQRAIA8tAAAhDEEBIRAMAQsgDyAMRQ0CGiAPQQFqIQ8gEUEBayIRRQ0BQQAhEAwACwALQQALIgcgDWsgCiAHGyIHIA1qIQogC0EATgRAIAkhDCAHIQsMCwsgCSEMIAchCyAKLQAADQ0MCgsgCwRAIAgoAkAMAgtBACEHIABBICATQQAgDBApDAILIAhBADYCDCAIIAgpA0A+AgggCCAIQQhqIgc2AkBBfyELIAcLIQlBACEHAkADQCAJKAIAIg1FDQEgCEEEaiANEIYBIgpBAEgiDSAKIAsgB2tLckUEQCAJQQRqIQkgCyAHIApqIgdLDQEMAgsLIA0NDQtBPSEKIAdBAEgNCyAAQSAgEyAHIAwQKSAHRQRAQQAhBwwBC0EAIQogCCgCQCEJA0AgCSgCACINRQ0BIAhBBGogDRCGASINIApqIgogB0sNASAAIAhBBGogDRAmIAlBBGohCSAHIApLDQALCyAAQSAgEyAHIAxBgMAAcxApIBMgByAHIBNIGyEHDAgLIA9BACALQQBIGw0IQT0hCiAAIAgrA0AgEyALIAwgByAFERwAIgdBAE4NBwwJCyAIIAgpA0A8ADdBASELIBchDSAJIQwMBAsgBy0AASEJIAdBAWohBwwACwALIAANByAVRQ0CQQEhBwNAIAQgB0ECdGooAgAiAARAIAMgB0EDdGogACACIAYQhwFBASEOIAdBAWoiB0EKRw0BDAkLC0EBIQ4gB0EKTw0HA0AgBCAHQQJ0aigCAA0BIAdBAWoiB0EKRw0ACwwHC0EcIQoMBAsgCyAKIA1rIhAgCyAQShsiCSASQf////8Hc0oNAkE9IQogEyAJIBJqIgsgCyATSBsiByAYSg0DIABBICAHIAsgDBApIAAgFiASECYgAEEwIAcgCyAMQYCABHMQKSAAQTAgCSAQQQAQKSAAIA0gEBAmIABBICAHIAsgDEGAwABzECkMAQsLQQAhDgwDC0E9IQoLQfw7IAo2AgALQX8hDgsgCEHQAGokACAOC9kCAQR/IwBB0AFrIgUkACAFIAI2AswBIAVBoAFqIgJBAEEoECoaIAUgBSgCzAE2AsgBAkBBACABIAVByAFqIAVB0ABqIAIgAyAEEIoBQQBIBEBBfyEEDAELQQEgBiAAKAJMQQBOGyEGIAAoAgAhByAAKAJIQQBMBEAgACAHQV9xNgIACwJ/AkACQCAAKAIwRQRAIABB0AA2AjAgAEEANgIcIABCADcDECAAKAIsIQggACAFNgIsDAELIAAoAhANAQtBfyAAEJ0BDQEaCyAAIAEgBUHIAWogBUHQAGogBUGgAWogAyAEEIoBCyECIAgEQCAAQQBBACAAKAIkEQYAGiAAQQA2AjAgACAINgIsIABBADYCHCAAKAIUIQEgAEIANwMQIAJBfyABGyECCyAAIAAoAgAiACAHQSBxcjYCAEF/IAIgAEEgcRshBCAGRQ0ACyAFQdABaiQAIAQLfwIBfwF+IAC9IgNCNIinQf8PcSICQf8PRwR8IAJFBEAgASAARAAAAAAAAAAAYQR/QQAFIABEAAAAAAAA8EOiIAEQjAEhACABKAIAQUBqCzYCACAADwsgASACQf4HazYCACADQv////////+HgH+DQoCAgICAgIDwP4S/BSAACwsVACAARQRAQQAPC0H8OyAANgIAQX8LzgECA38CfSMAQRBrIgMkAEEBIQQgA0EIaiAAQfwAaiIFIAAgAUEBdGpBxABqIgEvAQAQHwJAAkAgAyoCCCIHIAIqAgAiBlwEQCAHIAdbBEAgAi0ABCECDAILIAYgBlwhBAsgAi0ABCECIARFDQAgAy0ADCACQf8BcUYNAQsgBSABIAYgAhA5A0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsgA0EQaiQAC9EDAEHUO0GoHBAcQdU7QYoWQQFBAUEAEBtB1jtB/RJBAUGAf0H/ABAEQdc7QfYSQQFBgH9B/wAQBEHYO0H0EkEBQQBB/wEQBEHZO0GUCkECQYCAfkH//wEQBEHaO0GLCkECQQBB//8DEARB2ztBsQpBBEGAgICAeEH/////BxAEQdw7QagKQQRBAEF/EARB3TtB+BhBBEGAgICAeEH/////BxAEQd47Qe8YQQRBAEF/EARB3ztBjxBCgICAgICAgICAf0L///////////8AEIQBQeA7QY4QQgBCfxCEAUHhO0GIEEEEEA1B4jtB9BtBCBANQeM7QaQZEA5B5DtBmSIQDkHlO0EEQZcZEAhB5jtBAkGwGRAIQec7QQRBvxkQCEHoO0GPFhAaQek7QQBB1CEQAUHqO0EAQboiEAFB6ztBAUHyIRABQew7QQJB5B4QAUHtO0EDQYMfEAFB7jtBBEGrHxABQe87QQVByB8QAUHwO0EEQd8iEAFB8TtBBUH9IhABQeo7QQBBriAQAUHrO0EBQY0gEAFB7DtBAkHwIBABQe07QQNBziAQAUHuO0EEQbMhEAFB7ztBBUGRIRABQfI7QQZB7h8QAUHzO0EHQaQjEAELJQAgAEH0JjYCACAALQAEBEAgACgCCEH9DxBmCyAAKAIIEAYgAAsDAAALJQAgAEHsJzYCACAALQAEBEAgACgCCEH9DxBmCyAAKAIIEAYgAAs3AQJ/QQQQHiICIAE2AgBBBBAeIgMgATYCAEGjOyAAQeI7QfooQcEBIAJB4jtB/ihBwgEgAxAHCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRBQALOQEBfyABIAAoAgQiBEEBdWohASAAKAIAIQAgASACIAMgBEEBcQR/IAEoAgAgAGooAgAFIAALEQMACwkAIAEgABEAAAsHACAAEQ4ACzUBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAIAEgAkEBcQR/IAEoAgAgAGooAgAFIAALEQAACzABAX8jAEEQayICJAAgAiABNgIIIAJBCGogABECACEAIAIoAggQBiACQRBqJAAgAAsMACABIAAoAgARAAALCQAgAEEBOgAEC9coAQJ/QaA7QaE7QaI7QQBBjCZBB0GPJkEAQY8mQQBB2RZBkSZBCBAFQQgQHiIAQoiAgIAQNwMAQaA7QZcbQQZBoCZBuCZBCSAAQQEQAEGkO0GlO0GmO0GgO0GMJkEKQYwmQQtBjCZBDEG4EUGRJkENEAVBBBAeIgBBDjYCAEGkO0HoFEECQcAmQcgmQQ8gAEEAEABBoDtBowxBAkHMJkHUJkEQQREQA0GgO0GAHEEDQaQnQbAnQRJBExADQbg7Qbk7Qbo7QQBBjCZBFEGPJkEAQY8mQQBB6RZBkSZBFRAFQQgQHiIAQoiAgIAQNwMAQbg7QegcQQJBuCdByCZBFiAAQQEQAEG7O0G8O0G9O0G4O0GMJkEXQYwmQRhBjCZBGUHPEUGRJkEaEAVBBBAeIgBBGzYCAEG7O0HoFEECQcAnQcgmQRwgAEEAEABBuDtBowxBAkHIJ0HUJkEdQR4QA0G4O0GAHEEDQaQnQbAnQRJBHxADQb47Qb87QcA7QQBBjCZBIEGPJkEAQY8mQQBB2hpBkSZBIRAFQb47QQFB+CdBjCZBIkEjEA9BvjtBkBtBAUH4J0GMJkEiQSMQA0G+O0HpCEECQfwnQcgmQSRBJRADQQgQHiIAQQA2AgQgAEEmNgIAQb47Qa0cQQRBkChBoChBJyAAQQAQAEEIEB4iAEEANgIEIABBKDYCAEG+O0GkEUEDQagoQbQoQSkgAEEAEABBCBAeIgBBADYCBCAAQSo2AgBBvjtByB1BA0G8KEHIKEErIABBABAAQQgQHiIAQQA2AgQgAEEsNgIAQb47QaYQQQNB0ChByChBLSAAQQAQAEEIEB4iAEEANgIEIABBLjYCAEG+O0HLHEEDQdwoQbAnQS8gAEEAEABBCBAeIgBBADYCBCAAQTA2AgBBvjtB0h1BAkHoKEHUJkExIABBABAAQQgQHiIAQQA2AgQgAEEyNgIAQb47QZcQQQJB8ChB1CZBMyAAQQAQAEHBO0GECkH4KEE0QZEmQTUQCkHiD0EAEEhB6g5BCBBIQYITQRAQSEHxFUEYEEhBgxdBIBBIQfAOQSgQSEHBOxAJQaM7Qf8aQfgoQTZBkSZBNxAKQYMXQQAQkwFB8A5BCBCTAUGjOxAJQcI7QYobQfgoQThBkSZBORAKQQQQHiIAQQg2AgBBBBAeIgFBCDYCAEHCO0GEG0HiO0H6KEE6IABB4jtB/ihBOyABEAdBBBAeIgBBADYCAEEEEB4iAUEANgIAQcI7QeUOQds7QdQmQTwgAEHbO0HIKEE9IAEQB0HCOxAJQcM7QcQ7QcU7QQBBjCZBPkGPJkEAQY8mQQBB+xtBkSZBPxAFQcM7QQFBhClBjCZBwABBwQAQD0HDO0HXDkEBQYQpQYwmQcAAQcEAEANBwztB0BpBAkGIKUHUJkHCAEHDABADQcM7QekIQQJBkClByCZBxABBxQAQA0EIEB4iAEEANgIEIABBxgA2AgBBwztB9w9BAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABByAA2AgBBwztB6htBA0GYKUHIKEHJACAAQQAQAEEIEB4iAEEANgIEIABBygA2AgBBwztBnxtBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABBzAA2AgBBwztB0BRBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABBzgA2AgBBwztBiA1BBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABBzwA2AgBBwztB3RNBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0AA2AgBBwztB+QtBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0QA2AgBBwztBuBBBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0gA2AgBBwztB5RpBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0wA2AgBBwztB/BRBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB1AA2AgBBwztBlRNBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB1QA2AgBBwztBtQpBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB1gA2AgBBwztBuBVBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB1wA2AgBBwztBmw1BBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB2AA2AgBBwztB7RNBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB2QA2AgBBwztBxAlBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB2gA2AgBBwztB8QhBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB2wA2AgBBwztBhwlBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB3QA2AgBBwztB1BBBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB3gA2AgBBwztB5gxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB3wA2AgBBwztBzBNBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABB4AA2AgBBwztBrAlBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB4QA2AgBBwztBnxZBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB4gA2AgBBwztBoRdBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB4wA2AgBBwztBvw1BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB5AA2AgBBwztB+xNBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABB5QA2AgBBwztBkQ9BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB5gA2AgBBwztBwQxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB5wA2AgBBwztBvhNBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABB6AA2AgBBwztBsxdBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB6QA2AgBBwztBzw1BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB6gA2AgBBwztBpQ9BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB6wA2AgBBwztB0gxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7AA2AgBBwztBiRdBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7QA2AgBBwztBrA1BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7gA2AgBBwztB9w5BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7wA2AgBBwztBrQxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB8AA2AgBBwztB/RhBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB8QA2AgBBwztBshRBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB8gA2AgBBwztBlBJBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB8wA2AgBBwztBzhlBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9AA2AgBBwztB4g1BBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9QA2AgBBwztBrRNBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9gA2AgBBwztB+gxBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9wA2AgBBwztBnhVBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB+AA2AgBBwztBrxtBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB+gA2AgBBwztB3BRBA0HcKUGwJ0H7ACAAQQAQAEEIEB4iAEEANgIEIABB/AA2AgBBwztBiQxBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB/QA2AgBBwztBxhBBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB/gA2AgBBwztB8hpBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB/wA2AgBBwztBjRVBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBgAE2AgBBwztBoRNBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBgQE2AgBBwztBxwpBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBggE2AgBBwztBwhVBA0HcKUGwJ0H7ACAAQQAQAEEIEB4iAEEANgIEIABBgwE2AgBBwztB4RBBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBhQE2AgBBwztBuAlBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBhwE2AgBBwztBrRZBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBiAE2AgBBwztBqhdBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBiQE2AgBBwztBmw9BAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBigE2AgBBwztBvxdBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBiwE2AgBBwztBsg9BAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBjAE2AgBBwztBlRdBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBjQE2AgBBwztBhA9BAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBjgE2AgBBwztBihlBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBjwE2AgBBwztBwRRBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBkAE2AgBBwztBnhJBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBkgE2AgBBwztB0AlBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBkwE2AgBBwztB/AhBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBlAE2AgBBwztB2RlBA0HcKUGwJ0H7ACAAQQAQAEEIEB4iAEEANgIEIABBlQE2AgBBwztBtBNBA0GMKkGYKkGWASAAQQAQAEEIEB4iAEEANgIEIABBlwE2AgBBwztBhxxBBEGgKkGgKEGYASAAQQAQAEEIEB4iAEEANgIEIABBmQE2AgBBwztBnBxBA0GwKkHIKEGaASAAQQAQAEEIEB4iAEEANgIEIABBmwE2AgBBwztBmgpBAkG8KkHUJkGcASAAQQAQAEEIEB4iAEEANgIEIABBnQE2AgBBwztBmQxBAkHEKkHUJkGeASAAQQAQAEEIEB4iAEEANgIEIABBnwE2AgBBwztBkxxBA0HMKkGwJ0GgASAAQQAQAEEIEB4iAEEANgIEIABBoQE2AgBBwztBuxZBA0HYKkHIKEGiASAAQQAQAEEIEB4iAEEANgIEIABBowE2AgBBwztBvxtBAkHkKkHUJkGkASAAQQAQAEEIEB4iAEEANgIEIABBpQE2AgBBwztB0xtBA0HYKkHIKEGiASAAQQAQAEEIEB4iAEEANgIEIABBpgE2AgBBwztBqB1BA0HsKkHIKEGnASAAQQAQAEEIEB4iAEEANgIEIABBqAE2AgBBwztBph1BAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBqQE2AgBBwztBuR1BA0H4KkHIKEGqASAAQQAQAEEIEB4iAEEANgIEIABBqwE2AgBBwztBtx1BAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBrAE2AgBBwztB3whBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBrQE2AgBBwztB1whBAkGEK0HUJkGuASAAQQAQAEEIEB4iAEEANgIEIABBrwE2AgBBwztB3hVBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBsAE2AgBBwztB3AlBAkGEK0HUJkGuASAAQQAQAEEIEB4iAEEANgIEIABBsQE2AgBBwztB6QlBBUGQK0GkK0GyASAAQQAQAEEIEB4iAEEANgIEIABBswE2AgBBwztB5w9BAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtAE2AgBBwztB0Q9BAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtQE2AgBBwztBhhNBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtgE2AgBBwztB+BVBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtwE2AgBBwztByxdBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBuAE2AgBBwztBvw9BAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBuQE2AgBBwztB+QlBAkGsK0HUJkG6ASAAQQAQAEEIEB4iAEEANgIEIABBuwE2AgBBwztBzBVBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBvAE2AgBBwztBqBJBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBvQE2AgBBwztB5BlBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBvgE2AgBBwztBqxVBAkHUKUHUJkH5ACAAQQAQAAtZAQF/IAAgACgCSCIBQQFrIAFyNgJIIAAoAgAiAUEIcQRAIAAgAUEgcjYCAEF/DwsgAEIANwIEIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhBBAAtHAAJAIAFBA00EfyAAIAFBAnRqQQRqBSABQQRrIgEgACgCGCIAKAIEIAAoAgAiAGtBAnVPDQEgACABQQJ0agsoAgAPCxACAAs4AQF/IAFBAEgEQBACAAsgAUEBa0EFdkEBaiIBQQJ0EB4hAiAAIAE2AgggAEEANgIEIAAgAjYCAAvSBQEJfyAAIAEvAQA7AQAgACABKQIENwIEIAAgASkCDDcCDCAAIAEoAhQ2AhQCQAJAIAEoAhgiA0UNAEEYEB4iBUEANgIIIAVCADcCACADKAIEIgEgAygCACICRwRAIAEgAmsiAkEASA0CIAUgAhAeIgE2AgAgBSABIAJqNgIIIAMoAgAiAiADKAIEIgZHBEADQCABIAIoAgA2AgAgAUEEaiEBIAJBBGoiAiAGRw0ACwsgBSABNgIECyAFQgA3AgwgBUEANgIUIAMoAhAiAUUNACAFQQxqIAEQnwEgAygCDCEGIAUgBSgCECIEIAMoAhAiAkEfcWogAkFgcWoiATYCEAJAAkAgBEUEQCABQQFrIQMMAQsgAUEBayIDIARBAWtzQSBJDQELIAUoAgwgA0EFdkEAIAFBIU8bQQJ0akEANgIACyAFKAIMIARBA3ZB/P///wFxaiEBIARBH3EiA0UEQCACQQBMDQEgAkEgbSEDIAJBH2pBP08EQCABIAYgA0ECdBAzGgsgAiADQQV0ayICQQBMDQEgASADQQJ0IgNqIgEgASgCAEF/QSAgAmt2IgFBf3NxIAMgBmooAgAgAXFyNgIADAELIAJBAEwNAEF/IAN0IQhBICADayEEIAJBIE4EQCAIQX9zIQkgASgCACEHA0AgASAHIAlxIAYoAgAiByADdHI2AgAgASABKAIEIAhxIAcgBHZyIgc2AgQgBkEEaiEGIAFBBGohASACQT9LIQogAkEgayECIAoNAAsgAkEATA0BCyABIAEoAgBBfyAEIAQgAiACIARKGyIEa3YgCHFBf3NxIAYoAgBBf0EgIAJrdnEiBiADdHI2AgAgAiAEayICQQBMDQAgASADIARqQQN2Qfz///8BcWoiASABKAIAQX9BICACa3ZBf3NxIAYgBHZyNgIACyAAKAIYIQEgACAFNgIYIAEEQCABEFsLDwsQAgALvQMBB38gAARAIwBBIGsiBiQAIAAoAgAiASgC5AMiAwRAIAMgARBvGiABQQA2AuQDCyABKALsAyICIAEoAugDIgNHBEBBASACIANrQQJ1IgIgAkEBTRshBEEAIQIDQCADIAJBAnRqKAIAQQA2AuQDIAJBAWoiAiAERw0ACwsgASADNgLsAwJAIAMgAUHwA2oiAigCAEYNACAGQQhqQQBBACACEEoiAigCBCABKALsAyABKALoAyIEayIFayIDIAQgBRAzIQUgASgC6AMhBCABIAU2AugDIAIgBDYCBCABKALsAyEFIAEgAigCCDYC7AMgAiAFNgIIIAEoAvADIQcgASACKAIMNgLwAyACIAQ2AgAgAiAHNgIMIAQgBUcEQCACIAUgBCAFa0EDakF8cWo2AggLIARFDQAgBBAnIAEoAugDIQMLIAMEQCABIAM2AuwDIAMQJwsgASgClAEhAyABQQA2ApQBIAMEQCADEFsLIAEQJyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALIAAoAgQhASAAQQA2AgQgAQRAIAEgASgCACgCBBEAAAsgBkEgaiQAIAAQIwsLtQEBAX8jAEEQayICJAACfyABBEAgASgCACEBQYgEEB4gARBcIAENARogAkH3GTYCACACEHIQJAALQZQ7LQAARQRAQfg6QQM2AgBBiDtCgICAgICAgMA/NwIAQYA7QgA3AgBBlDtBAToAAEH8OkH8Oi0AAEH+AXE6AABB9DpBADYCAEGQO0EANgIAC0GIBBAeQfQ6EFwLIQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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";if(!Hq(zq)){var DG=zq;zq=g.locateFile?g.locateFile(DG,Z):Z+DG}function yG(){var G=zq;try{if(G==zq&&O)return new Uint8Array(O);if(Hq(G))try{var Q=yM(G.slice(37)),X=new Uint8Array(Q.length);for(G=0;G<Q.length;++G)X[G]=Q.charCodeAt(G);var H=X}catch(P){throw Error("Converting base64 string to bytes failed.")}else H=void 0;var W=H;if(W)return W;throw"both async and sync fetching of the wasm failed"}catch(P){RA(P)}}function $M(){return O||typeof fetch!="function"?Promise.resolve().then(function(){return yG()}):fetch(zq,{credentials:"same-origin"}).then(function(G){if(!G.ok)throw"failed to load wasm binary file at '"+zq+"'";return G.arrayBuffer()}).catch(function(){return yG()})}function Qj(G){for(;0<G.length;)G.shift()(g)}function bG(G){if(G===void 0)return"_unknown";G=G.replace(/[^a-zA-Z0-9_]/g,"$");var Q=G.charCodeAt(0);return 48<=Q&&57>=Q?"_"+G:G}function Oj(G,Q){return G=bG(G),function(){return Q.apply(this,arguments)}}var Fq=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Jj=[];function IK(G){var Q=Error,X=Oj(G,function(H){this.name=G,this.message=H,H=Error(H).stack,H!==void 0&&(this.stack=this.toString()+`
|
|
4
|
-
`+H.replace(/^Error(:[^\n]*)?\n/,""))});return X.prototype=Object.create(Q.prototype),X.prototype.constructor=X,X.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},X}var L6=void 0;function KA(G){throw new L6(G)}var OE=(G)=>{return G||KA("Cannot use deleted val. handle = "+G),Fq[G].value},aK=(G)=>{switch(G){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var Q=Jj.length?Jj.pop():Fq.length;return Fq[Q]={ga:1,value:G},Q}},vG=void 0,mG=void 0;function zA(G){for(var Q="";x[G];)Q+=mG[x[G++]];return Q}var JE=[];function Mj(){for(;JE.length;){var G=JE.pop();G.M.$=!1,G.delete()}}var ME=void 0,Bq={};function _j(G,Q){for(Q===void 0&&KA("ptr should not be undefined");G.R;)Q=G.ba(Q),G=G.R;return Q}var Bg={};function fG(G){G=rG(G);var Q=zA(G);return kq(G),Q}function cG(G,Q){var X=Bg[G];return X===void 0&&KA(Q+" has unknown type "+fG(G)),X}function PK(){}var $j=!1;function dG(G){--G.count.value,G.count.value===0&&(G.T?G.U.W(G.T):G.P.N.W(G.O))}function pG(G,Q,X){if(Q===X)return G;if(X.R===void 0)return null;return G=pG(G,Q,X.R),G===null?null:X.na(G)}var uG={};function XM(G,Q){return Q=_j(G,Q),Bq[Q]}var lG=void 0;function RK(G){throw new lG(G)}function SK(G,Q){return Q.P&&Q.O||RK("makeClassHandle requires ptr and ptrType"),!!Q.U!==!!Q.T&&RK("Both smartPtrType and smartPtr must be specified"),Q.count={value:1},V6(Object.create(G,{M:{value:Q}}))}function V6(G){if(typeof FinalizationRegistry>"u")return V6=(Q)=>Q,G;return $j=new FinalizationRegistry((Q)=>{dG(Q.M)}),V6=(Q)=>{var X=Q.M;return X.T&&$j.register(Q,{M:X},Q),Q},PK=(Q)=>{$j.unregister(Q)},V6(G)}var hK={};function Xj(G){for(;G.length;){var Q=G.pop();G.pop()(Q)}}function _E(G){return this.fromWireType(k[G>>2])}var W6={},zK={};function Kg(G,Q,X){function H(w){w=X(w),w.length!==G.length&&RK("Mismatched type converter count");for(var b=0;b<G.length;++b)wq(G[b],w[b])}G.forEach(function(w){zK[w]=Q});var W=Array(Q.length),P=[],B=0;Q.forEach((w,b)=>{Bg.hasOwnProperty(w)?W[b]=Bg[w]:(P.push(w),W6.hasOwnProperty(w)||(W6[w]=[]),W6[w].push(()=>{W[b]=Bg[w],++B,B===P.length&&H(W)}))}),P.length===0&&H(W)}function Hj(G){switch(G){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw TypeError("Unknown type size: "+G)}}function wq(G,Q,X={}){if(!("argPackAdvance"in Q))throw TypeError("registerType registeredInstance requires argPackAdvance");var H=Q.name;if(G||KA('type "'+H+'" must have a positive integer typeid pointer'),Bg.hasOwnProperty(G)){if(X.ua)return;KA("Cannot register type '"+H+"' twice")}Bg[G]=Q,delete zK[G],W6.hasOwnProperty(G)&&(Q=W6[G],delete W6[G],Q.forEach((W)=>W()))}function Lj(G){KA(G.M.P.N.name+" instance already deleted")}function Zg(){}function Vj(G,Q,X){if(G[Q].S===void 0){var H=G[Q];G[Q]=function(){return G[Q].S.hasOwnProperty(arguments.length)||KA("Function '"+X+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+G[Q].S+")!"),G[Q].S[arguments.length].apply(this,arguments)},G[Q].S=[],G[Q].S[H.Z]=H}}function HM(G,Q){g.hasOwnProperty(G)?(KA("Cannot register public name '"+G+"' twice"),Vj(g,G,G),g.hasOwnProperty(void 0)&&KA("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),g[G].S[void 0]=Q):g[G]=Q}function LM(G,Q,X,H,W,P,B,w){this.name=G,this.constructor=Q,this.X=X,this.W=H,this.R=W,this.pa=P,this.ba=B,this.na=w,this.ja=[]}function Wj(G,Q,X){for(;Q!==X;)Q.ba||KA("Expected null or instance of "+X.name+", got an instance of "+Q.name),G=Q.ba(G),Q=Q.R;return G}function VM(G,Q){if(Q===null)return this.ea&&KA("null is not a valid "+this.name),0;return Q.M||KA('Cannot pass "'+Ij(Q)+'" as a '+this.name),Q.M.O||KA("Cannot pass deleted object as a pointer of type "+this.name),Wj(Q.M.O,Q.M.P.N,this.N)}function WM(G,Q){if(Q===null){if(this.ea&&KA("null is not a valid "+this.name),this.da){var X=this.fa();return G!==null&&G.push(this.W,X),X}return 0}if(Q.M||KA('Cannot pass "'+Ij(Q)+'" as a '+this.name),Q.M.O||KA("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&Q.M.P.ca&&KA("Cannot convert argument of type "+(Q.M.U?Q.M.U.name:Q.M.P.name)+" to parameter type "+this.name),X=Wj(Q.M.O,Q.M.P.N,this.N),this.da)switch(Q.M.T===void 0&&KA("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:Q.M.U===this?X=Q.M.T:KA("Cannot convert argument of type "+(Q.M.U?Q.M.U.name:Q.M.P.name)+" to parameter type "+this.name);break;case 1:X=Q.M.T;break;case 2:if(Q.M.U===this)X=Q.M.T;else{var H=Q.clone();X=this.xa(X,aK(function(){H.delete()})),G!==null&&G.push(this.W,X)}break;default:KA("Unsupporting sharing policy")}return X}function NM(G,Q){if(Q===null)return this.ea&&KA("null is not a valid "+this.name),0;return Q.M||KA('Cannot pass "'+Ij(Q)+'" as a '+this.name),Q.M.O||KA("Cannot pass deleted object as a pointer of type "+this.name),Q.M.P.ca&&KA("Cannot convert argument of type "+Q.M.P.name+" to parameter type "+this.name),Wj(Q.M.O,Q.M.P.N,this.N)}function Cq(G,Q,X,H){this.name=G,this.N=Q,this.ea=X,this.ca=H,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,Q.R!==void 0?this.toWireType=WM:(this.toWireType=H?VM:NM,this.V=null)}function xM(G,Q){g.hasOwnProperty(G)||RK("Replacing nonexistant public symbol"),g[G]=Q,g[G].Z=void 0}function TM(G,Q){var X=[];return function(){if(X.length=0,Object.assign(X,arguments),G.includes("j")){var H=g["dynCall_"+G];H=X&&X.length?H.apply(null,[Q].concat(X)):H.call(null,Q)}else H=z.get(Q).apply(null,X);return H}}function Kq(G,Q){G=zA(G);var X=G.includes("j")?TM(G,Q):z.get(Q);return typeof X!="function"&&KA("unknown function pointer with signature "+G+": "+Q),X}var iG=void 0;function BK(G,Q){function X(P){W[P]||Bg[P]||(zK[P]?zK[P].forEach(X):(H.push(P),W[P]=!0))}var H=[],W={};throw Q.forEach(X),new iG(G+": "+H.map(fG).join([", "]))}function Nj(G,Q,X,H,W){var P=Q.length;2>P&&KA("argTypes array size mismatch! Must at least get return value and 'this' types!");var B=Q[1]!==null&&X!==null,w=!1;for(X=1;X<Q.length;++X)if(Q[X]!==null&&Q[X].V===void 0){w=!0;break}var b=Q[0].name!=="void",y=P-2,p=Array(y),r=[],ZA=[];return function(){if(arguments.length!==y&&KA("function "+G+" called with "+arguments.length+" arguments, expected "+y+" args!"),ZA.length=0,r.length=B?2:1,r[0]=W,B){var LA=Q[1].toWireType(ZA,this);r[1]=LA}for(var GA=0;GA<y;++GA)p[GA]=Q[GA+2].toWireType(ZA,arguments[GA]),r.push(p[GA]);if(GA=H.apply(null,r),w)Xj(ZA);else for(var pA=B?1:2;pA<Q.length;pA++){var Zq=pA===1?LA:p[pA-2];Q[pA].V!==null&&Q[pA].V(Zq)}return LA=b?Q[0].fromWireType(GA):void 0,LA}}function xj(G,Q){for(var X=[],H=0;H<G;H++)X.push(C[Q+4*H>>2]);return X}function Tj(G){4<G&&--Fq[G].ga===0&&(Fq[G]=void 0,Jj.push(G))}function Ij(G){if(G===null)return"null";var Q=typeof G;return Q==="object"||Q==="array"||Q==="function"?G.toString():""+G}function IM(G,Q){switch(Q){case 2:return function(X){return this.fromWireType(u[X>>2])};case 3:return function(X){return this.fromWireType(c[X>>3])};default:throw TypeError("Unknown float type: "+G)}}function aM(G,Q,X){switch(Q){case 0:return X?function(H){return T[H]}:function(H){return x[H]};case 1:return X?function(H){return V[H>>1]}:function(H){return a[H>>1]};case 2:return X?function(H){return k[H>>2]}:function(H){return C[H>>2]};default:throw TypeError("Unknown integer type: "+G)}}function PM(G,Q){for(var X="",H=0;!(H>=Q/2);++H){var W=V[G+2*H>>1];if(W==0)break;X+=String.fromCharCode(W)}return X}function RM(G,Q,X){if(X===void 0&&(X=2147483647),2>X)return 0;X-=2;var H=Q;X=X<2*G.length?X/2:G.length;for(var W=0;W<X;++W)V[Q>>1]=G.charCodeAt(W),Q+=2;return V[Q>>1]=0,Q-H}function SM(G){return 2*G.length}function hM(G,Q){for(var X=0,H="";!(X>=Q/4);){var W=k[G+4*X>>2];if(W==0)break;++X,65536<=W?(W-=65536,H+=String.fromCharCode(55296|W>>10,56320|W&1023)):H+=String.fromCharCode(W)}return H}function zM(G,Q,X){if(X===void 0&&(X=2147483647),4>X)return 0;var H=Q;X=H+X-4;for(var W=0;W<G.length;++W){var P=G.charCodeAt(W);if(55296<=P&&57343>=P){var B=G.charCodeAt(++W);P=65536+((P&1023)<<10)|B&1023}if(k[Q>>2]=P,Q+=4,Q+4>X)break}return k[Q>>2]=0,Q-H}function BM(G){for(var Q=0,X=0;X<G.length;++X){var H=G.charCodeAt(X);55296<=H&&57343>=H&&++X,Q+=4}return Q}var wM={};function tG(G){var Q=wM[G];return Q===void 0?zA(G):Q}var wK=[];function CM(G){var Q=wK.length;return wK.push(G),Q}function kM(G,Q){for(var X=Array(G),H=0;H<G;++H)X[H]=cG(C[Q+4*H>>2],"parameter "+H);return X}var sG=[],DM=[null,[],[]];L6=g.BindingError=IK("BindingError"),g.count_emval_handles=function(){for(var G=0,Q=5;Q<Fq.length;++Q)Fq[Q]!==void 0&&++G;return G},g.get_first_emval=function(){for(var G=5;G<Fq.length;++G)if(Fq[G]!==void 0)return Fq[G];return null},vG=g.PureVirtualError=IK("PureVirtualError");for(var nG=Array(256),CK=0;256>CK;++CK)nG[CK]=String.fromCharCode(CK);mG=nG,g.getInheritedInstanceCount=function(){return Object.keys(Bq).length},g.getLiveInheritedInstances=function(){var G=[],Q;for(Q in Bq)Bq.hasOwnProperty(Q)&&G.push(Bq[Q]);return G},g.flushPendingDeletes=Mj,g.setDelayFunction=function(G){ME=G,JE.length&&ME&&ME(Mj)},lG=g.InternalError=IK("InternalError"),Zg.prototype.isAliasOf=function(G){if(!(this instanceof Zg&&G instanceof Zg))return!1;var Q=this.M.P.N,X=this.M.O,H=G.M.P.N;for(G=G.M.O;Q.R;)X=Q.ba(X),Q=Q.R;for(;H.R;)G=H.ba(G),H=H.R;return Q===H&&X===G},Zg.prototype.clone=function(){if(this.M.O||Lj(this),this.M.aa)return this.M.count.value+=1,this;var G=V6,Q=Object,X=Q.create,H=Object.getPrototypeOf(this),W=this.M;return G=G(X.call(Q,H,{M:{value:{count:W.count,$:W.$,aa:W.aa,O:W.O,P:W.P,T:W.T,U:W.U}}})),G.M.count.value+=1,G.M.$=!1,G},Zg.prototype.delete=function(){this.M.O||Lj(this),this.M.$&&!this.M.aa&&KA("Object already scheduled for deletion"),PK(this),dG(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},Zg.prototype.isDeleted=function(){return!this.M.O},Zg.prototype.deleteLater=function(){return this.M.O||Lj(this),this.M.$&&!this.M.aa&&KA("Object already scheduled for deletion"),JE.push(this),JE.length===1&&ME&&ME(Mj),this.M.$=!0,this},Cq.prototype.qa=function(G){return this.ka&&(G=this.ka(G)),G},Cq.prototype.ha=function(G){this.W&&this.W(G)},Cq.prototype.argPackAdvance=8,Cq.prototype.readValueFromPointer=_E,Cq.prototype.deleteObject=function(G){if(G!==null)G.delete()},Cq.prototype.fromWireType=function(G){function Q(){return this.da?SK(this.N.X,{P:this.wa,O:X,U:this,T:G}):SK(this.N.X,{P:this,O:G})}var X=this.qa(G);if(!X)return this.ha(G),null;var H=XM(this.N,X);if(H!==void 0){if(H.M.count.value===0)return H.M.O=X,H.M.T=G,H.clone();return H=H.clone(),this.ha(G),H}if(H=this.N.pa(X),H=uG[H],!H)return Q.call(this);H=this.ca?H.la:H.pointerType;var W=pG(X,this.N,H.N);return W===null?Q.call(this):this.da?SK(H.N.X,{P:H,O:W,U:this,T:G}):SK(H.N.X,{P:H,O:W})},iG=g.UnboundTypeError=IK("UnboundTypeError");var yM=typeof atob=="function"?atob:function(G){var Q="",X=0;G=G.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var H="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(G.charAt(X++)),W="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(G.charAt(X++)),P="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(G.charAt(X++)),B="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(G.charAt(X++));H=H<<2|W>>4,W=(W&15)<<4|P>>2;var w=(P&3)<<6|B;Q+=String.fromCharCode(H),P!==64&&(Q+=String.fromCharCode(W)),B!==64&&(Q+=String.fromCharCode(w))}while(X<G.length);return Q},bM={l:function(G,Q,X,H){RA("Assertion failed: "+(G?$(x,G):"")+", at: "+[Q?Q?$(x,Q):"":"unknown filename",X,H?H?$(x,H):"":"unknown function"])},q:function(G,Q,X){G=zA(G),Q=cG(Q,"wrapper"),X=OE(X);var H=[].slice,W=Q.N,P=W.X,B=W.R.X,w=W.R.constructor;G=Oj(G,function(){W.R.ja.forEach(function(y){if(this[y]===B[y])throw new vG("Pure virtual function "+y+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:P}),this.__construct.apply(this,H.call(arguments))}),P.__construct=function(){this===P&&KA("Pass correct 'this' to __construct");var y=w.implement.apply(void 0,[this].concat(H.call(arguments)));PK(y);var p=y.M;y.notifyOnDestruction(),p.aa=!0,Object.defineProperties(this,{M:{value:p}}),V6(this),y=p.O,y=_j(W,y),Bq.hasOwnProperty(y)?KA("Tried to register registered instance: "+y):Bq[y]=this},P.__destruct=function(){this===P&&KA("Pass correct 'this' to __destruct"),PK(this);var y=this.M.O;y=_j(W,y),Bq.hasOwnProperty(y)?delete Bq[y]:KA("Tried to unregister unregistered instance: "+y)},G.prototype=Object.create(P);for(var b in X)G.prototype[b]=X[b];return aK(G)},j:function(G){var Q=hK[G];delete hK[G];var{fa:X,W:H,ia:W}=Q,P=W.map((B)=>B.ta).concat(W.map((B)=>B.za));Kg([G],P,(B)=>{var w={};return W.forEach((b,y)=>{var p=B[y],r=b.ra,ZA=b.sa,LA=B[y+W.length],GA=b.ya,pA=b.Aa;w[b.oa]={read:(Zq)=>p.fromWireType(r(ZA,Zq)),write:(Zq,$E)=>{var Dq=[];GA(pA,Zq,LA.toWireType(Dq,$E)),Xj(Dq)}}}),[{name:Q.name,fromWireType:function(b){var y={},p;for(p in w)y[p]=w[p].read(b);return H(b),y},toWireType:function(b,y){for(var p in w)if(!(p in y))throw TypeError('Missing field: "'+p+'"');var r=X();for(p in w)w[p].write(r,y[p]);return b!==null&&b.push(H,r),r},argPackAdvance:8,readValueFromPointer:_E,V:H}]})},v:function(){},B:function(G,Q,X,H,W){var P=Hj(X);Q=zA(Q),wq(G,{name:Q,fromWireType:function(B){return!!B},toWireType:function(B,w){return w?H:W},argPackAdvance:8,readValueFromPointer:function(B){if(X===1)var w=T;else if(X===2)w=V;else if(X===4)w=k;else throw TypeError("Unknown boolean type size: "+Q);return this.fromWireType(w[B>>P])},V:null})},f:function(G,Q,X,H,W,P,B,w,b,y,p,r,ZA){p=zA(p),P=Kq(W,P),w&&(w=Kq(B,w)),y&&(y=Kq(b,y)),ZA=Kq(r,ZA);var LA=bG(p);HM(LA,function(){BK("Cannot construct "+p+" due to unbound types",[H])}),Kg([G,Q,X],H?[H]:[],function(GA){if(GA=GA[0],H)var pA=GA.N,Zq=pA.X;else Zq=Zg.prototype;GA=Oj(LA,function(){if(Object.getPrototypeOf(this)!==$E)throw new L6("Use 'new' to construct "+p);if(Dq.Y===void 0)throw new L6(p+" has no accessible constructor");var AY=Dq.Y[arguments.length];if(AY===void 0)throw new L6("Tried to invoke ctor of "+p+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(Dq.Y).toString()+") parameters instead!");return AY.apply(this,arguments)});var $E=Object.create(Zq,{constructor:{value:GA}});GA.prototype=$E;var Dq=new LM(p,GA,$E,ZA,pA,P,w,y);pA=new Cq(p,Dq,!0,!1),Zq=new Cq(p+"*",Dq,!1,!1);var eG=new Cq(p+" const*",Dq,!1,!0);return uG[G]={pointerType:Zq,la:eG},xM(LA,GA),[pA,Zq,eG]})},d:function(G,Q,X,H,W,P,B){var w=xj(X,H);Q=zA(Q),P=Kq(W,P),Kg([],[G],function(b){function y(){BK("Cannot call "+p+" due to unbound types",w)}b=b[0];var p=b.name+"."+Q;Q.startsWith("@@")&&(Q=Symbol[Q.substring(2)]);var r=b.N.constructor;return r[Q]===void 0?(y.Z=X-1,r[Q]=y):(Vj(r,Q,p),r[Q].S[X-1]=y),Kg([],w,function(ZA){return ZA=Nj(p,[ZA[0],null].concat(ZA.slice(1)),null,P,B),r[Q].S===void 0?(ZA.Z=X-1,r[Q]=ZA):r[Q].S[X-1]=ZA,[]}),[]})},p:function(G,Q,X,H,W,P){0<Q||RA();var B=xj(Q,X);W=Kq(H,W),Kg([],[G],function(w){w=w[0];var b="constructor "+w.name;if(w.N.Y===void 0&&(w.N.Y=[]),w.N.Y[Q-1]!==void 0)throw new L6("Cannot register multiple constructors with identical number of parameters ("+(Q-1)+") for class '"+w.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return w.N.Y[Q-1]=()=>{BK("Cannot construct "+w.name+" due to unbound types",B)},Kg([],B,function(y){return y.splice(1,0,null),w.N.Y[Q-1]=Nj(b,y,null,W,P),[]}),[]})},a:function(G,Q,X,H,W,P,B,w){var b=xj(X,H);Q=zA(Q),P=Kq(W,P),Kg([],[G],function(y){function p(){BK("Cannot call "+r+" due to unbound types",b)}y=y[0];var r=y.name+"."+Q;Q.startsWith("@@")&&(Q=Symbol[Q.substring(2)]),w&&y.N.ja.push(Q);var ZA=y.N.X,LA=ZA[Q];return LA===void 0||LA.S===void 0&&LA.className!==y.name&&LA.Z===X-2?(p.Z=X-2,p.className=y.name,ZA[Q]=p):(Vj(ZA,Q,r),ZA[Q].S[X-2]=p),Kg([],b,function(GA){return GA=Nj(r,GA,y,P,B),ZA[Q].S===void 0?(GA.Z=X-2,ZA[Q]=GA):ZA[Q].S[X-2]=GA,[]}),[]})},A:function(G,Q){Q=zA(Q),wq(G,{name:Q,fromWireType:function(X){var H=OE(X);return Tj(X),H},toWireType:function(X,H){return aK(H)},argPackAdvance:8,readValueFromPointer:_E,V:null})},n:function(G,Q,X){X=Hj(X),Q=zA(Q),wq(G,{name:Q,fromWireType:function(H){return H},toWireType:function(H,W){return W},argPackAdvance:8,readValueFromPointer:IM(Q,X),V:null})},e:function(G,Q,X,H,W){Q=zA(Q),W===-1&&(W=4294967295),W=Hj(X);var P=(w)=>w;if(H===0){var B=32-8*X;P=(w)=>w<<B>>>B}X=Q.includes("unsigned")?function(w,b){return b>>>0}:function(w,b){return b},wq(G,{name:Q,fromWireType:P,toWireType:X,argPackAdvance:8,readValueFromPointer:aM(Q,W,H!==0),V:null})},b:function(G,Q,X){function H(P){P>>=2;var B=C;return new W(_,B[P+1],B[P])}var W=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][Q];X=zA(X),wq(G,{name:X,fromWireType:H,argPackAdvance:8,readValueFromPointer:H},{ua:!0})},o:function(G,Q){Q=zA(Q);var X=Q==="std::string";wq(G,{name:Q,fromWireType:function(H){var W=C[H>>2],P=H+4;if(X)for(var B=P,w=0;w<=W;++w){var b=P+w;if(w==W||x[b]==0){if(B=B?$(x,B,b-B):"",y===void 0)var y=B;else y+=String.fromCharCode(0),y+=B;B=b+1}}else{y=Array(W);for(w=0;w<W;++w)y[w]=String.fromCharCode(x[P+w]);y=y.join("")}return kq(H),y},toWireType:function(H,W){W instanceof ArrayBuffer&&(W=new Uint8Array(W));var P,B=typeof W=="string";if(B||W instanceof Uint8Array||W instanceof Uint8ClampedArray||W instanceof Int8Array||KA("Cannot pass non-string to std::string"),X&&B){var w=0;for(P=0;P<W.length;++P){var b=W.charCodeAt(P);127>=b?w++:2047>=b?w+=2:55296<=b&&57343>=b?(w+=4,++P):w+=3}P=w}else P=W.length;if(w=aj(4+P+1),b=w+4,C[w>>2]=P,X&&B){if(B=b,b=P+1,P=x,0<b){b=B+b-1;for(var y=0;y<W.length;++y){var p=W.charCodeAt(y);if(55296<=p&&57343>=p){var r=W.charCodeAt(++y);p=65536+((p&1023)<<10)|r&1023}if(127>=p){if(B>=b)break;P[B++]=p}else{if(2047>=p){if(B+1>=b)break;P[B++]=192|p>>6}else{if(65535>=p){if(B+2>=b)break;P[B++]=224|p>>12}else{if(B+3>=b)break;P[B++]=240|p>>18,P[B++]=128|p>>12&63}P[B++]=128|p>>6&63}P[B++]=128|p&63}}P[B]=0}}else if(B)for(B=0;B<P;++B)y=W.charCodeAt(B),255<y&&(kq(b),KA("String has UTF-16 code units that do not fit in 8 bits")),x[b+B]=y;else for(B=0;B<P;++B)x[b+B]=W[B];return H!==null&&H.push(kq,w),w},argPackAdvance:8,readValueFromPointer:_E,V:function(H){kq(H)}})},i:function(G,Q,X){if(X=zA(X),Q===2)var H=PM,W=RM,P=SM,B=()=>a,w=1;else Q===4&&(H=hM,W=zM,P=BM,B=()=>C,w=2);wq(G,{name:X,fromWireType:function(b){for(var y=C[b>>2],p=B(),r,ZA=b+4,LA=0;LA<=y;++LA){var GA=b+4+LA*Q;if(LA==y||p[GA>>w]==0)ZA=H(ZA,GA-ZA),r===void 0?r=ZA:(r+=String.fromCharCode(0),r+=ZA),ZA=GA+Q}return kq(b),r},toWireType:function(b,y){typeof y!="string"&&KA("Cannot pass non-string to C++ string type "+X);var p=P(y),r=aj(4+p+Q);return C[r>>2]=p>>w,W(y,r+4,p+Q),b!==null&&b.push(kq,r),r},argPackAdvance:8,readValueFromPointer:_E,V:function(b){kq(b)}})},k:function(G,Q,X,H,W,P){hK[G]={name:zA(Q),fa:Kq(X,H),W:Kq(W,P),ia:[]}},h:function(G,Q,X,H,W,P,B,w,b,y){hK[G].ia.push({oa:zA(Q),ta:X,ra:Kq(H,W),sa:P,za:B,ya:Kq(w,b),Aa:y})},C:function(G,Q){Q=zA(Q),wq(G,{va:!0,name:Q,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(G,Q,X,H,W){G=wK[G],Q=OE(Q),X=tG(X);var P=[];return C[H>>2]=aK(P),G(Q,X,P,W)},t:function(G,Q,X,H){G=wK[G],Q=OE(Q),X=tG(X),G(Q,X,null,H)},g:Tj,m:function(G,Q){var X=kM(G,Q),H=X[0];Q=H.name+"_$"+X.slice(1).map(function(B){return B.name}).join("_")+"$";var W=sG[Q];if(W!==void 0)return W;var P=Array(G-1);return W=CM((B,w,b,y)=>{for(var p=0,r=0;r<G-1;++r)P[r]=X[r+1].readValueFromPointer(y+p),p+=X[r+1].argPackAdvance;B=B[w].apply(B,P);for(r=0;r<G-1;++r)X[r+1].ma&&X[r+1].ma(P[r]);if(!H.va)return H.toWireType(b,B)}),sG[Q]=W},D:function(G){4<G&&(Fq[G].ga+=1)},r:function(G){var Q=OE(G);Xj(Q),Tj(G)},c:function(){RA("")},x:function(G,Q,X){x.copyWithin(G,Q,Q+X)},w:function(G){var Q=x.length;if(G>>>=0,2147483648<G)return!1;for(var X=1;4>=X;X*=2){var H=Q*(1+0.2/X);H=Math.min(H,G+100663296);var W=Math;H=Math.max(G,H),W=W.min.call(W,2147483648,H+(65536-H%65536)%65536);A:{try{M.grow(W-_.byteLength+65535>>>16),R();var P=1;break A}catch(B){}P=void 0}if(P)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(G,Q,X,H){for(var W=0,P=0;P<X;P++){var B=C[Q>>2],w=C[Q+4>>2];Q+=8;for(var b=0;b<w;b++){var y=x[B+b],p=DM[G];y===0||y===10?((G===1?j:U)($(p,0)),p.length=0):p.push(y)}W+=w}return C[H>>2]=W,0}};(function(){function G(W){g.asm=W.exports,M=g.asm.E,R(),z=g.asm.J,m.unshift(g.asm.F),YA--,g.monitorRunDependencies&&g.monitorRunDependencies(YA),YA==0&&(PA!==null&&(clearInterval(PA),PA=null),bA&&(W=bA,bA=null,W()))}function Q(W){G(W.instance)}function X(W){return $M().then(function(P){return WebAssembly.instantiate(P,H)}).then(function(P){return P}).then(W,function(P){U("failed to asynchronously prepare wasm: "+P),RA(P)})}var H={a:bM};if(YA++,g.monitorRunDependencies&&g.monitorRunDependencies(YA),g.instantiateWasm)try{return g.instantiateWasm(H,G)}catch(W){U("Module.instantiateWasm callback failed with error: "+W),F(W)}return function(){return O||typeof WebAssembly.instantiateStreaming!="function"||Hq(zq)||typeof fetch!="function"?X(Q):fetch(zq,{credentials:"same-origin"}).then(function(W){return WebAssembly.instantiateStreaming(W,H).then(Q,function(P){return U("wasm streaming compile failed: "+P),U("falling back to ArrayBuffer instantiation"),X(Q)})})}().catch(F),{}})(),g.___wasm_call_ctors=function(){return(g.___wasm_call_ctors=g.asm.F).apply(null,arguments)};var rG=g.___getTypeName=function(){return(rG=g.___getTypeName=g.asm.G).apply(null,arguments)};g.__embind_initialize_bindings=function(){return(g.__embind_initialize_bindings=g.asm.H).apply(null,arguments)};var aj=g._malloc=function(){return(aj=g._malloc=g.asm.I).apply(null,arguments)},kq=g._free=function(){return(kq=g._free=g.asm.K).apply(null,arguments)};g.dynCall_jiji=function(){return(g.dynCall_jiji=g.asm.L).apply(null,arguments)};var kK;bA=function G(){kK||oG(),kK||(bA=G)};function oG(){function G(){if(!kK&&(kK=!0,g.calledRun=!0,!J)){if(Qj(m),E(g),g.onRuntimeInitialized)g.onRuntimeInitialized();if(g.postRun)for(typeof g.postRun=="function"&&(g.postRun=[g.postRun]);g.postRun.length;){var Q=g.postRun.shift();gA.unshift(Q)}Qj(gA)}}if(!(0<YA)){if(g.preRun)for(typeof g.preRun=="function"&&(g.preRun=[g.preRun]);g.preRun.length;)FA();Qj(n),0<YA||(g.setStatus?(g.setStatus("Running..."),setTimeout(function(){setTimeout(function(){g.setStatus("")},1),G()},1)):G())}}if(g.preInit)for(typeof g.preInit=="function"&&(g.preInit=[g.preInit]);0<g.preInit.length;)g.preInit.pop()();return oG(),q.ready}})(),eM=oM,jA=function(A){return A[A.Auto=0]="Auto",A[A.FlexStart=1]="FlexStart",A[A.Center=2]="Center",A[A.FlexEnd=3]="FlexEnd",A[A.Stretch=4]="Stretch",A[A.Baseline=5]="Baseline",A[A.SpaceBetween=6]="SpaceBetween",A[A.SpaceAround=7]="SpaceAround",A[A.SpaceEvenly=8]="SpaceEvenly",A}({}),Bj=function(A){return A[A.BorderBox=0]="BorderBox",A[A.ContentBox=1]="ContentBox",A}({}),wj=function(A){return A[A.Width=0]="Width",A[A.Height=1]="Height",A}({}),P6=function(A){return A[A.Inherit=0]="Inherit",A[A.LTR=1]="LTR",A[A.RTL=2]="RTL",A}({}),Qg=function(A){return A[A.Flex=0]="Flex",A[A.None=1]="None",A[A.Contents=2]="Contents",A}({}),t=function(A){return A[A.Left=0]="Left",A[A.Top=1]="Top",A[A.Right=2]="Right",A[A.Bottom=3]="Bottom",A[A.Start=4]="Start",A[A.End=5]="End",A[A.Horizontal=6]="Horizontal",A[A.Vertical=7]="Vertical",A[A.All=8]="All",A}({}),kg=function(A){return A[A.None=0]="None",A[A.StretchFlexBasis=1]="StretchFlexBasis",A[A.AbsolutePositionWithoutInsetsExcludesPadding=2]="AbsolutePositionWithoutInsetsExcludesPadding",A[A.AbsolutePercentAgainstInnerSize=4]="AbsolutePercentAgainstInnerSize",A[A.All=2147483647]="All",A[A.Classic=2147483646]="Classic",A}({}),mY=function(A){return A[A.WebFlexBasis=0]="WebFlexBasis",A}({}),qq=function(A){return A[A.Column=0]="Column",A[A.ColumnReverse=1]="ColumnReverse",A[A.Row=2]="Row",A[A.RowReverse=3]="RowReverse",A}({}),Oq=function(A){return A[A.Column=0]="Column",A[A.Row=1]="Row",A[A.All=2]="All",A}({}),mA=function(A){return A[A.FlexStart=0]="FlexStart",A[A.Center=1]="Center",A[A.FlexEnd=2]="FlexEnd",A[A.SpaceBetween=3]="SpaceBetween",A[A.SpaceAround=4]="SpaceAround",A[A.SpaceEvenly=5]="SpaceEvenly",A}({}),Dg=function(A){return A[A.Error=0]="Error",A[A.Warn=1]="Warn",A[A.Info=2]="Info",A[A.Debug=3]="Debug",A[A.Verbose=4]="Verbose",A[A.Fatal=5]="Fatal",A}({}),cq=function(A){return A[A.Undefined=0]="Undefined",A[A.Exactly=1]="Exactly",A[A.AtMost=2]="AtMost",A}({}),Cj=function(A){return A[A.Default=0]="Default",A[A.Text=1]="Text",A}({}),vq=function(A){return A[A.Visible=0]="Visible",A[A.Hidden=1]="Hidden",A[A.Scroll=2]="Scroll",A}({}),mq=function(A){return A[A.Static=0]="Static",A[A.Relative=1]="Relative",A[A.Absolute=2]="Absolute",A}({}),Qq=function(A){return A[A.Undefined=0]="Undefined",A[A.Point=1]="Point",A[A.Percent=2]="Percent",A[A.Auto=3]="Auto",A}({}),fq=function(A){return A[A.NoWrap=0]="NoWrap",A[A.Wrap=1]="Wrap",A[A.WrapReverse=2]="WrapReverse",A}({}),A_={ALIGN_AUTO:jA.Auto,ALIGN_FLEX_START:jA.FlexStart,ALIGN_CENTER:jA.Center,ALIGN_FLEX_END:jA.FlexEnd,ALIGN_STRETCH:jA.Stretch,ALIGN_BASELINE:jA.Baseline,ALIGN_SPACE_BETWEEN:jA.SpaceBetween,ALIGN_SPACE_AROUND:jA.SpaceAround,ALIGN_SPACE_EVENLY:jA.SpaceEvenly,BOX_SIZING_BORDER_BOX:Bj.BorderBox,BOX_SIZING_CONTENT_BOX:Bj.ContentBox,DIMENSION_WIDTH:wj.Width,DIMENSION_HEIGHT:wj.Height,DIRECTION_INHERIT:P6.Inherit,DIRECTION_LTR:P6.LTR,DIRECTION_RTL:P6.RTL,DISPLAY_FLEX:Qg.Flex,DISPLAY_NONE:Qg.None,DISPLAY_CONTENTS:Qg.Contents,EDGE_LEFT:t.Left,EDGE_TOP:t.Top,EDGE_RIGHT:t.Right,EDGE_BOTTOM:t.Bottom,EDGE_START:t.Start,EDGE_END:t.End,EDGE_HORIZONTAL:t.Horizontal,EDGE_VERTICAL:t.Vertical,EDGE_ALL:t.All,ERRATA_NONE:kg.None,ERRATA_STRETCH_FLEX_BASIS:kg.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:kg.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:kg.AbsolutePercentAgainstInnerSize,ERRATA_ALL:kg.All,ERRATA_CLASSIC:kg.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:mY.WebFlexBasis,FLEX_DIRECTION_COLUMN:qq.Column,FLEX_DIRECTION_COLUMN_REVERSE:qq.ColumnReverse,FLEX_DIRECTION_ROW:qq.Row,FLEX_DIRECTION_ROW_REVERSE:qq.RowReverse,GUTTER_COLUMN:Oq.Column,GUTTER_ROW:Oq.Row,GUTTER_ALL:Oq.All,JUSTIFY_FLEX_START:mA.FlexStart,JUSTIFY_CENTER:mA.Center,JUSTIFY_FLEX_END:mA.FlexEnd,JUSTIFY_SPACE_BETWEEN:mA.SpaceBetween,JUSTIFY_SPACE_AROUND:mA.SpaceAround,JUSTIFY_SPACE_EVENLY:mA.SpaceEvenly,LOG_LEVEL_ERROR:Dg.Error,LOG_LEVEL_WARN:Dg.Warn,LOG_LEVEL_INFO:Dg.Info,LOG_LEVEL_DEBUG:Dg.Debug,LOG_LEVEL_VERBOSE:Dg.Verbose,LOG_LEVEL_FATAL:Dg.Fatal,MEASURE_MODE_UNDEFINED:cq.Undefined,MEASURE_MODE_EXACTLY:cq.Exactly,MEASURE_MODE_AT_MOST:cq.AtMost,NODE_TYPE_DEFAULT:Cj.Default,NODE_TYPE_TEXT:Cj.Text,OVERFLOW_VISIBLE:vq.Visible,OVERFLOW_HIDDEN:vq.Hidden,OVERFLOW_SCROLL:vq.Scroll,POSITION_TYPE_STATIC:mq.Static,POSITION_TYPE_RELATIVE:mq.Relative,POSITION_TYPE_ABSOLUTE:mq.Absolute,UNIT_UNDEFINED:Qq.Undefined,UNIT_POINT:Qq.Point,UNIT_PERCENT:Qq.Percent,UNIT_AUTO:Qq.Auto,WRAP_NO_WRAP:fq.NoWrap,WRAP_WRAP:fq.Wrap,WRAP_WRAP_REVERSE:fq.WrapReverse},q_=A_;function g_(A){function q(F,K,Z){let j=F[K];F[K]=function(){for(var U=arguments.length,O=Array(U),Y=0;Y<U;Y++)O[Y]=arguments[Y];return Z.call(this,j,...O)}}for(let F of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){let K={[Qq.Point]:A.Node.prototype[F],[Qq.Percent]:A.Node.prototype[`${F}Percent`],[Qq.Auto]:A.Node.prototype[`${F}Auto`]};q(A.Node.prototype,F,function(Z){for(var j=arguments.length,U=Array(j>1?j-1:0),O=1;O<j;O++)U[O-1]=arguments[O];let Y=U.pop(),M,J;if(Y==="auto")M=Qq.Auto,J=void 0;else if(typeof Y==="object")M=Y.unit,J=Y.valueOf();else if(M=typeof Y==="string"&&Y.endsWith("%")?Qq.Percent:Qq.Point,J=parseFloat(Y),Y!==void 0&&!Number.isNaN(Y)&&Number.isNaN(J))throw Error(`Invalid value ${Y} for ${F}`);if(!K[M])throw Error(`Failed to execute "${F}": Unsupported unit '${Y}'`);if(J!==void 0)return K[M].call(this,...U,J);else return K[M].call(this,...U)})}function g(F){return A.MeasureCallback.implement({measure:function(){let{width:K,height:Z}=F(...arguments);return{width:K??NaN,height:Z??NaN}}})}q(A.Node.prototype,"setMeasureFunc",function(F,K){if(K)return F.call(this,g(K));else return this.unsetMeasureFunc()});function E(F){return A.DirtiedCallback.implement({dirtied:F})}return q(A.Node.prototype,"setDirtiedFunc",function(F,K){F.call(this,E(K))}),q(A.Config.prototype,"free",function(){A.Config.destroy(this)}),q(A.Node,"create",(F,K)=>{return K?A.Node.createWithConfig(K):A.Node.createDefault()}),q(A.Node.prototype,"free",function(){A.Node.destroy(this)}),q(A.Node.prototype,"freeRecursive",function(){for(let F=0,K=this.getChildCount();F<K;++F)this.getChild(0).freeRecursive();this.free()}),q(A.Node.prototype,"calculateLayout",function(F){let K=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,Z=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,j=arguments.length>3&&arguments[3]!==void 0?arguments[3]:P6.LTR;return F.call(this,K,Z,j)}),{Config:A.Config,Node:A.Node,...q_}}var E_=g_(await eM()),lK=E_,fY=["single","double","rounded","heavy"];function cY(A){return typeof A==="string"&&fY.includes(A)}function iK(A,q="single"){if(cY(A))return A;if(A!==void 0&&A!==null)console.warn(`Invalid borderStyle "${A}", falling back to "${q}". Valid values are: ${fY.join(", ")}`);return q}var HE={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",topT:"\u252C",bottomT:"\u2534",leftT:"\u251C",rightT:"\u2524",cross:"\u253C"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",topT:"\u2566",bottomT:"\u2569",leftT:"\u2560",rightT:"\u2563",cross:"\u256C"},rounded:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",topT:"\u252C",bottomT:"\u2534",leftT:"\u251C",rightT:"\u2524",cross:"\u253C"},heavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",topT:"\u2533",bottomT:"\u253B",leftT:"\u2523",rightT:"\u252B",cross:"\u254B"}};function tK(A){return A===!0?{top:!0,right:!0,bottom:!0,left:!0}:Array.isArray(A)?{top:A.includes("top"),right:A.includes("right"),bottom:A.includes("bottom"),left:A.includes("left")}:{top:!1,right:!1,bottom:!1,left:!1}}function bg(A){let q=new Uint32Array(11);return q[0]=A.topLeft.codePointAt(0),q[1]=A.topRight.codePointAt(0),q[2]=A.bottomLeft.codePointAt(0),q[3]=A.bottomRight.codePointAt(0),q[4]=A.horizontal.codePointAt(0),q[5]=A.vertical.codePointAt(0),q[6]=A.topT.codePointAt(0),q[7]=A.bottomT.codePointAt(0),q[8]=A.leftT.codePointAt(0),q[9]=A.rightT.codePointAt(0),q[10]=A.cross.codePointAt(0),q}var dY={single:bg(HE.single),double:bg(HE.double),rounded:bg(HE.rounded),heavy:bg(HE.heavy)},OY={27:"escape",9:"tab",13:"return",127:"backspace",57344:"escape",57345:"return",57346:"tab",57347:"backspace",57348:"insert",57349:"delete",57350:"left",57351:"right",57352:"up",57353:"down",57354:"pageup",57355:"pagedown",57356:"home",57357:"end",57364:"f1",57365:"f2",57366:"f3",57367:"f4",57368:"f5",57369:"f6",57370:"f7",57371:"f8",57372:"f9",57373:"f10",57374:"f11",57375:"f12",57376:"f13",57377:"f14",57378:"f15",57379:"f16",57380:"f17",57381:"f18",57382:"f19",57383:"f20",57384:"f21",57385:"f22",57386:"f23",57387:"f24",57388:"f25",57389:"f26",57390:"f27",57391:"f28",57392:"f29",57393:"f30",57394:"f31",57395:"f32",57396:"f33",57397:"f34",57398:"f35",57400:"kp0",57401:"kp1",57402:"kp2",57403:"kp3",57404:"kp4",57405:"kp5",57406:"kp6",57407:"kp7",57408:"kp8",57409:"kp9",57410:"kpdecimal",57411:"kpdivide",57412:"kpmultiply",57413:"kpminus",57414:"kpplus",57415:"kpenter",57416:"kpequal",57428:"mediaplay",57429:"mediapause",57430:"mediaplaypause",57431:"mediareverse",57432:"mediastop",57433:"mediafastforward",57434:"mediarewind",57435:"medianext",57436:"mediaprev",57437:"mediarecord",57438:"volumedown",57439:"volumeup",57440:"mute",57441:"leftshift",57442:"leftctrl",57443:"leftalt",57444:"leftsuper",57445:"lefthyper",57446:"leftmeta",57447:"rightshift",57448:"rightctrl",57449:"rightalt",57450:"rightsuper",57451:"righthyper",57452:"rightmeta",57453:"iso_level3_shift",57454:"iso_level5_shift"};function pY(A){return{shift:!!(A&1),alt:!!(A&2),ctrl:!!(A&4),super:!!(A&8),hyper:!!(A&16),meta:!!(A&32),capsLock:!!(A&64),numLock:!!(A&128)}}var K_={A:"up",B:"down",C:"right",D:"left",H:"home",F:"end",P:"f1",Q:"f2",R:"f3",S:"f4"},Z_={"1":"home","2":"insert","3":"delete","4":"end","5":"pageup","6":"pagedown","7":"home","8":"end","11":"f1","12":"f2","13":"f3","14":"f4","15":"f5","17":"f6","18":"f7","19":"f8","20":"f9","21":"f10","23":"f11","24":"f12"};function j_(A){let g=/^\x1b\[(\d+);(\d+):(\d+)([A-Z~])$/.exec(A);if(!g)return null;let E=g[1],F=g[2],K=g[3],Z=g[4],j;if(Z==="~")j=Z_[E];else{if(E!=="1")return null;j=K_[Z]}if(!j)return null;let U={name:j,ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:A,raw:A,eventType:"press",source:"kitty",super:!1,hyper:!1,capsLock:!1,numLock:!1};if(F){let O=parseInt(F,10);if(!isNaN(O)&&O>1){let Y=pY(O-1);U.shift=Y.shift,U.ctrl=Y.ctrl,U.meta=Y.alt||Y.meta,U.option=Y.alt,U.super=Y.super,U.hyper=Y.hyper,U.capsLock=Y.capsLock,U.numLock=Y.numLock}}if(K==="1"||!K)U.eventType="press";else if(K==="2")U.eventType="press",U.repeated=!0;else if(K==="3")U.eventType="release";return U}function U_(A){let q=j_(A);if(q)return q;let E=/^\x1b\[([^\x1b]+)u$/.exec(A);if(!E)return null;let K=E[1].split(";");if(K.length<1)return null;let Z={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:A,raw:A,eventType:"press",source:"kitty",super:!1,hyper:!1,capsLock:!1,numLock:!1},j="",U=K[0]?.split(":")||[],O=U[0];if(!O)return null;let Y=parseInt(O,10);if(isNaN(Y))return null;let M,J;if(U[1]){let _=parseInt(U[1],10);if(!isNaN(_)&&_>0&&_<=1114111)M=_}if(U[2]){let _=parseInt(U[2],10);if(!isNaN(_)&&_>0&&_<=1114111)J=_}let $=OY[Y];if($)Z.name=$,Z.code=`[${Y}u`;else if(Y>0&&Y<=1114111){let _=String.fromCodePoint(Y);if(Z.name=_,J)Z.baseCode=J}else return null;if(K[1]){let _=K[1].split(":"),T=_[0],x=_[1];if(T){let V=parseInt(T,10);if(!isNaN(V)&&V>1){let a=pY(V-1);Z.shift=a.shift,Z.ctrl=a.ctrl,Z.meta=a.alt||a.meta,Z.option=a.alt,Z.super=a.super,Z.hyper=a.hyper,Z.capsLock=a.capsLock,Z.numLock=a.numLock}}if(x==="1"||!x)Z.eventType="press";else if(x==="2")Z.eventType="press",Z.repeated=!0;else if(x==="3")Z.eventType="release";else Z.eventType="press"}if(K[2]){let _=K[2].split(":");for(let T of _){let x=parseInt(T,10);if(!isNaN(x)&&x>0&&x<=1114111)j+=String.fromCodePoint(x)}}if(j===""){if(Z.name.length>0&&!OY[Y])if(Z.shift&&M)j=String.fromCodePoint(M);else if(Z.shift&&Z.name.length===1)j=Z.name.toLocaleUpperCase();else j=Z.name}if(Z.name===" "&&Z.shift&&!Z.ctrl&&!Z.meta)j=" ";if(j)Z.sequence=j;return Z}var G_=/^(?:\x1b)([a-zA-Z0-9])$/,Y_=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,uY={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear",f:"right",b:"left",p:"up",n:"down","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"},Q_=[...Object.values(uY),"backspace"],O_=(A)=>{return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(A)},J_=(A)=>{return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(A)},M_=/^\x1b\[27;(\d+);(\d+)~$/,lY=(A="",q={})=>{let g;if(F_.isBuffer(A))if(A[0]>127&&A[1]===void 0)A[0]-=128,A="\x1B"+String(A);else A=String(A);else if(A!==void 0&&typeof A!=="string")A=String(A);else if(!A)A="";if(/^\x1b\[<\d+;\d+;\d+[Mm]$/.test(A))return null;if(A.startsWith("\x1B[M")&&A.length>=6)return null;if(/^\x1b\[\d+;\d+;\d+t$/.test(A))return null;if(/^\x1b\[\d+;\d+R$/.test(A))return null;if(/^\x1b\[\?[\d;]+c$/.test(A))return null;if(/^\x1b\[\?[\d;]+\$y$/.test(A))return null;if(A==="\x1B[I"||A==="\x1B[O")return null;if(/^\x1b\][\d;].*(\x1b\\|\x07)$/.test(A))return null;if(A==="\x1B[200~"||A==="\x1B[201~")return null;let E={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:A,raw:A,eventType:"press",source:"raw"};if(E.sequence=E.sequence||A||E.name,q.useKittyKeyboard){let K=U_(A);if(K)return K}let F=M_.exec(A);if(F){let K=parseInt(F[1],10)-1,Z=parseInt(F[2],10);if(E.ctrl=!!(K&4),E.meta=!!(K&2),E.shift=!!(K&1),E.option=!!(K&2),E.super=!!(K&8),E.hyper=!!(K&16),Z===13)E.name="return";else if(Z===27)E.name="escape";else if(Z===9)E.name="tab";else if(Z===32)E.name="space";else if(Z===127||Z===8)E.name="backspace";else E.name=String.fromCharCode(Z);return E}if(A==="\r"||A==="\x1B\r")E.name="return",E.meta=A.length===2;else if(A===`
|
|
3
|
+
import{Buffer as v_}from"buffer";import{EventEmitter as n_}from"events";import{EventEmitter as A$}from"events";import{EventEmitter as Y$}from"events";import{resolve as Qq,dirname as Oq}from"path";import{fileURLToPath as Jq}from"url";var vY="./highlights-ghv9g403.scm";var mY="./tree-sitter-javascript-nd0q4pe9.wasm";var fY="./highlights-eq9cgrbb.scm";var cY="./tree-sitter-typescript-zxjzwt75.wasm";var dY="./highlights-r812a2qc.scm";var pY="./tree-sitter-markdown-411r6y9b.wasm";var uY="./injections-73j83es3.scm";var lY="./highlights-x6tmsnaa.scm";var iY="./tree-sitter-markdown_inline-j5349f42.wasm";var tY="./highlights-hk7bwhj4.scm";var sY="./tree-sitter-zig-e78zbjpm.wasm";import{resolve as AQ,isAbsolute as M$,parse as _$}from"path";import{existsSync as $$}from"fs";import{basename as X$,join as H$}from"path";import qQ from"os";import Qg from"path";import{EventEmitter as T$}from"events";import{dlopen as P$,toArrayBuffer as aE,JSCallback as FQ,ptr as qA}from"bun:ffi";import{existsSync as R$}from"fs";import{EventEmitter as S$}from"events";import{toArrayBuffer as eK,ptr as KQ}from"bun:ffi";import{ptr as fg,toArrayBuffer as tj}from"bun:ffi";import{ptr as k$,toArrayBuffer as D$}from"bun:ffi";import{EventEmitter as f$}from"events";import u$ from"util";import{EventEmitter as oQ}from"events";import{Console as t$}from"console";import s$ from"fs";import n$ from"path";import WQ from"util";import{Writable as r$}from"stream";import{EventEmitter as o$}from"events";import{EventEmitter as gX}from"events";var z_=Object.defineProperty;var B_=(A,q)=>{for(var g in q)z_(A,g,{get:q[g],enumerable:!0,configurable:!0,set:(E)=>q[g]=()=>E})},qL=import.meta.require,TQ={};B_(TQ,{default:()=>ZZ,Wrap:()=>uq,Unit:()=>_q,PositionType:()=>pq,Overflow:()=>dq,NodeType:()=>ej,MeasureMode:()=>lq,LogLevel:()=>pg,Justify:()=>cA,Gutter:()=>$q,FlexDirection:()=>Kq,ExperimentalFeature:()=>IQ,Errata:()=>dg,Edge:()=>n,Display:()=>_g,Direction:()=>D6,Dimension:()=>oj,BoxSizing:()=>rj,Align:()=>UA});var w_=(()=>{var A=import.meta.url;return function(q){q=q||{};var g;g||(g=typeof q!=="undefined"?q:{});var E,F;g.ready=new Promise(function(Q,J){E=Q,F=J});var K=Object.assign({},g),Z="";typeof document!="undefined"&&document.currentScript&&(Z=document.currentScript.src),A&&(Z=A),Z.indexOf("blob:")!==0?Z=Z.substr(0,Z.replace(/[?#].*/,"").lastIndexOf("/")+1):Z="";var j=g.print||console.log.bind(console),U=g.printErr||console.warn.bind(console);Object.assign(g,K),K=null;var G;g.wasmBinary&&(G=g.wasmBinary);var Y=g.noExitRuntime||!0;typeof WebAssembly!="object"&&SA("no native wasm support detected");var M,O=!1;function $(Q,J,X){X=J+X;for(var H="";!(J>=X);){var W=Q[J++];if(!W)break;if(W&128){var S=Q[J++]&63;if((W&224)==192)H+=String.fromCharCode((W&31)<<6|S);else{var B=Q[J++]&63;W=(W&240)==224?(W&15)<<12|S<<6|B:(W&7)<<18|S<<12|B<<6|Q[J++]&63,65536>W?H+=String.fromCharCode(W):(W-=65536,H+=String.fromCharCode(55296|W>>10,56320|W&1023))}}else H+=String.fromCharCode(W)}return H}var _,x,N,L,P,k,C,i,p;function a(){var Q=M.buffer;_=Q,g.HEAP8=x=new Int8Array(Q),g.HEAP16=L=new Int16Array(Q),g.HEAP32=k=new Int32Array(Q),g.HEAPU8=N=new Uint8Array(Q),g.HEAPU16=P=new Uint16Array(Q),g.HEAPU32=C=new Uint32Array(Q),g.HEAPF32=i=new Float32Array(Q),g.HEAPF64=p=new Float64Array(Q)}var z,r=[],c=[],gA=[];function KA(){var Q=g.preRun.shift();r.unshift(Q)}var QA=0,RA=null,mA=null;function SA(Q){if(g.onAbort)g.onAbort(Q);throw Q="Aborted("+Q+")",U(Q),O=!0,Q=new WebAssembly.RuntimeError(Q+". Build with -sASSERTIONS for more info."),F(Q),Q}function Tq(Q){return Q.startsWith("data:application/octet-stream;base64,")}var kq="data:application/octet-stream;base64,AGFzbQEAAAABugM3YAF/AGACf38AYAF/AX9gA39/fwBgAn98AGACf38Bf2ADf39/AX9gBH9/f30BfWADf398AGAAAGAEf39/fwBgAX8BfGACf38BfGAFf39/f38Bf2AAAX9gA39/fwF9YAZ/f31/fX8AYAV/f39/fwBgAn9/AX1gBX9/f319AX1gAX8BfWADf35/AX5gB39/f39/f38AYAZ/f39/f38AYAR/f39/AX9gBn9/f319fQF9YAR/f31/AGADf399AX1gBn98f39/fwF/YAR/fHx/AGACf30AYAh/f39/f39/fwBgDX9/f39/f39/f39/f38AYAp/f39/f39/f39/AGAFf39/f38BfGAEfHx/fwF9YA1/fX1/f399fX9/f39/AX9gB39/f319f38AYAJ+fwF/YAN/fX0BfWABfAF8YAN/fHwAYAR/f319AGAHf39/fX19fQF9YA1/fX99f31/fX19fX1/AX9gC39/f39/f399fX19AX9gCH9/f39/f319AGAEf39+fgBgB39/f39/f38Bf2ACfH8BfGAFf398fH8AYAN/f38BfGAEf39/fABgA39/fQBgBn9/fX99fwF/ArUBHgFhAWEAHwFhAWIAAwFhAWMACQFhAWQAFgFhAWUAEQFhAWYAIAFhAWcAAAFhAWgAIQFhAWkAAwFhAWoAAAFhAWsAFwFhAWwACgFhAW0ABQFhAW4AAwFhAW8AAQFhAXAAFwFhAXEABgFhAXIAAAFhAXMAIgFhAXQACgFhAXUADQFhAXYAFgFhAXcAAgFhAXgAAwFhAXkAGAFhAXoAAgFhAUEAAQFhAUIAEQFhAUMAAQFhAUQAAAOiAqACAgMSBwcACRkDAAoRBgYKEwAPDxMBBiMTCgcHGgMUASQFJRQHAwMKCgMmAQYYDxobFAAKBw8KBwMDAgkCAAAFGwACBwIHBgIDAQMIDAABKAkHBQURACkZASoAAAIrLAIALQcHBy4HLwkFCgMCMA0xAgMJAgACAQYKAQIBBQEACQIFAQEABQAODQ0GFQIBHBUGAgkCEAAAAAUyDzMMBQYINAUCAwUODg41AgMCAgIDBgICNgIBDAwMAQsLCwsLCx0CAAIAAAABABABBQICAQMCEgMMCwEBAQEBAQsLAQICAwICAgICAgIDAgIICAEICAgEBAQEBAQEBAQABAQABAQEBAAE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GiABQQA2AvADIAFCADcC6AMgAigC7AMiAyACKALoAyIERwRAIAMgBGsiBEEASA0FIAEgBBAeIgM2AuwDIAEgAzYC6AMgASADIARqNgLwAyACKALoAyIEIAIoAuwDIghHBEADQCADIAQoAgA2AgAgA0EEaiEDIARBBGoiBCAIRw0ACwsgASADNgLsAwsgASACKQL0AzcC9AMgASACKAKEBDYChAQgASACKQL8AzcC/AMgAUEANgLkAwsgBSABNgIAIAEgADYC5AMLIAZBAWohBiAFQQRqIgUgB0cNAAsLDwsQAgALUAACQAJAAkACQAJAIAIOBAQAAQIDCyAAIAEgAUEwahBDDwsgACABIAFBMGogAxBEDwsgACABIAFBMGoQQg8LECQACyAAIAEgAUEwaiADEEULcAIBfwF9IwBBEGsiBCQAIARBCGogACABQQJ0QdwlaigCACACEDZDAADAfyEFAkACQAJAIAQtAAxBAWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwt5AgF/AX0jAEEQayIDJAAgA0EIaiAAIAFBAnRB7CVqKAIAIAIQU0MAAMB/IQQCQAJAAkAgAy0ADEEBaw4CAAECCyADKgIIIQQMAQsgAyoCCEMAAAAAlEMK1yM8lCEECyADQRBqJAAgBEMAAAAAl0MAAAAAIAQgBFsbC1QAAkACQAJAAkACQCACDgQEAAECAwsgACABIAFBwgBqEEMPCyAAIAEgAUHCAGogAxBEDwsgACABIAFBwgBqEEIPCxAkAAsgACABIAFBwgBqIAMQRQsvACAAIAJFQQF0IgIgASADEGAgACACIAEQS5IgACACIAEgAxB/IAAgAiABEFKSkgvOAQIDfwJ9IwBBEGsiAyQAQQEhBCADQQhqIABB/ABqIgUgACABQQF0akH2AGoiAS8BABAfAkACQCADKgIIIgcgAioCACIGXARAIAcgB1sEQCACLQAEIQIMAgsgBiAGXCEECyACLQAEIQIgBEUNACADLQAMIAJB/wFxRg0BCyAFIAEgBiACEDkDQCAALQAAIgFBBHENASAAIAFBBHI6AAAgACgCECIBBEAgACABEQAACyAAQYCAgP4HNgKcASAAKALkAyIADQALCyADQRBqJAALzgECA38CfSMAQRBrIgMk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AWsOAgABAgsgBCoCCCEFDAELIAQqAgggA5RDCtcjPJQhBQsgBEEQaiQAIAVDAAAAACAFIAVbGwscACAAIAFBCCACpyACQiCIpyADpyADQiCIpxAVCwUAEFgACzkAIABFBEBBAA8LAn8gAUGAf3FBgL8DRiABQf8ATXJFBEBB/DtBGTYCAEF/DAELIAAgAToAAEEBCwvEAgACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDhIACgsMCgsCAwQFDAsMDAoLBwgJCyACIAIoAgAiAUEEajYCACAAIAEoAgA2AgAPCwALIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LAAsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAQALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC84BAgN/An0jAEEQayIDJABBASEEIANBCGogAEH8AGoiBSAAIAFBAXRqQegAaiIBLwEAEB8CQAJAIAMqAggiByACKgIAIgZcBEAgByAHWwRAIAItAAQhAgwCCyAGIAZcIQQLIAItAAQhAiAERQ0AIAMtAAwgAkH/AXFGDQELIAUgASAGIAIQOQNAIAAtAAAiAUEEcQ0BIAAgAUEEcjoAACAAKAIQIgEEQCAAIAERAAALIABBgICA/gc2ApwBIAAoAuQDIgANAAsLIANBEGokAAtdAQR/IAAoAgAhAgNAIAIsAAAiAxBXBEBBfyEEIAAgAkEBaiICNgIAIAFBzJmz5gBNBH9BfyADQTBrIgMgAUEKbCIEaiADIARB/////wdzShsFIAQLIQEMAQsLIAELrhQCEn8BfiMAQdAAayIIJAAgCCABNgJMIAhBN2ohFyAIQThqIRQCQAJAAkACQANAIAEhDSAHIA5B/////wdzSg0BIAcgDmohDgJAAkACQCANIgctAAAiCQRAA0ACQAJAIAlB/wFxIgFFBEAgByEBDAELIAFBJUcNASAHIQkDQCAJLQABQSVHBEAgCSEBDAILIAdBAWohByAJLQACIQogCUECaiIBIQkgCkElRg0ACwsgByANayIHIA5B/////wdzIhhKDQcgAARAIAAgDSAHECYLIAcNBiAIIAE2AkwgAUEBaiEHQX8hEgJAIAEsAAEiChBXRQ0AIAEtAAJBJEcNACABQQNqIQcgCkEwayESQQEhFQsgCCAHNgJMQQAhDAJAIAcsAAAiCUEgayIBQR9LBEAgByEKDAELIAchCkEBIAF0IgFBidEEcUUNAANAIAggB0EBaiIKNgJMIAEgDHIhDCAHLAABIglBIGsiAUEgTw0BIAohB0EBIAF0IgFBidEEcQ0ACwsCQCAJQSpGBEACfwJAIAosAAEiARBXRQ0AIAotAAJBJEcNACABQQJ0IARqQcABa0EKNgIAIApBA2ohCUEBIRUgCiwAAUEDdCADakGAA2soAgAMAQsgFQ0GIApBAWohCSAARQRAIAggCTYCTEEAIRVBACETDAMLIAIgAigCACIBQQRqNgIAQQAhFSABKAIACyETIAggCTYCTCATQQBODQFBACATayETIAxBgMAAciEMDAELIAhBzABqEIkBIhNBAEgNCCAIKAJMIQkLQQAhB0F/IQsCfyAJLQAAQS5HBEAgCSEBQQAMAQsgCS0AAUEqRgRAAn8CQCAJLAACIgEQV0UNACAJLQADQSRHDQAgAUECdCAEakHAAWtBCjYCACAJQQRqIQEgCSwAAkEDdCADakGAA2soAgAMAQsgFQ0GIAlBAmohAUEAIABFDQAaIAIgAigCACIKQQRqNgIAIAooAgALIQsgCCABNgJMIAtBf3NBH3YMAQsgCCAJQQFqNgJMIAhBzABqEIkBIQsgCCgCTCEBQQELIQ8DQCAHIRFBHCEKIAEiECwAACIHQfsAa0FGSQ0JIBBBAWohASAHIBFBOmxqQf8qai0AACIHQQFrQQhJDQALIAggATYCTAJAAkAgB0EbRwRAIAdFDQsgEkEATgRAIAQgEkECdGogBzYCACAIIAMgEkEDdGopAwA3A0AMAgsgAEUNCCAIQUBrIAcgAiAGEIcBDAILIBJBAE4NCgtBACEHIABFDQcLIAxB//97cSIJIAwgDEGAwABxGyEMQQAhEkGPCSEWIBQhCgJAAkACQAJ/AkACQAJAAkACfwJAAkACQAJAAkACQAJAIBAsAAAiB0FfcSAHIAdBD3FBA0YbIAcgERsiB0HYAGsOIQQUFBQUFBQUFA4UDwYODg4UBhQUFBQCBQMUFAkUARQUBAALAkAgB0HBAGsOBw4UCxQODg4ACyAHQdMARg0JDBMLIAgpA0AhGUGPCQwFC0EAIQcCQAJAAkACQAJAAkACQCARQf8BcQ4IAAECAwQaBQYaCyAIKAJAIA42AgAMGQsgCCgCQCAONgIADBgLIAgoAkAgDqw3AwAMFwsgCCgCQCAOOwEADBYLIAgoAkAgDjoAAAwVCyAIKAJAIA42AgAMFAsgCCgCQCAOrDcDAAwTC0EIIAsgC0EITRshCyAMQQhyIQxB+AAhBwsgFCENIAgpA0AiGVBFBEAgB0EgcSEQA0AgDUEBayINIBmnQQ9xQZAvai0AACAQcjoAACAZQg9WIQkgGUIEiCEZIAkNAAsLIAxBCHFFIAgpA0BQcg0DIAdBBHZBjwlqIRZBAiESDAMLIBQhByAIKQNAIhlQRQRAA0AgB0EBayIHIBmnQQdxQTByOgAAIBlCB1YhDSAZQgOIIRkgDQ0ACwsgByENIAxBCHFFDQIgCyAUIA1rIgdBAWogByALSBshCwwCCyAIKQNAIhlCAFMEQCAIQgAgGX0iGTcDQEEBIRJBjwkMAQsgDEGAEHEEQEEBIRJBkAkMAQtBkQlBjwkgDEEBcSISGwshFiAZIBQQRyENCyAPQQAgC0EASBsNDiAMQf//e3EgDCAPGyEMIAgpA0AiGUIAUiALckUEQCAUIQ1BACELDAwLIAsgGVAgFCANa2oiByAHIAtIGyELDAsLQQAhDAJ/Qf////8HIAsgC0H/////B08bIgoiEUEARyEQAkACfwJAAkAgCCgCQCIHQY4lIAcbIg0iD0EDcUUgEUVyDQADQCAPLQAAIgxFDQIgEUEBayIRQQBHIRAgD0EBaiIPQQNxRQ0BIBENAAsLIBBFDQICQCAPLQAARSARQQRJckUEQANAIA8oAgAiB0F/cyAHQYGChAhrcUGAgYKEeHENAiAPQQRqIQ8gEUEEayIRQQNLDQALCyARRQ0DC0EADAELQQELIRADQCAQRQRAIA8tAAAhDEEBIRAMAQsgDyAMRQ0CGiAPQQFqIQ8gEUEBayIRRQ0BQQAhEAwACwALQQALIgcgDWsgCiAHGyIHIA1qIQogC0EATgRAIAkhDCAHIQsMCwsgCSEMIAchCyAKLQAADQ0MCgsgCwRAIAgoAkAMAgtBACEHIABBICATQQAgDBApDAILIAhBADYCDCAIIAgpA0A+AgggCCAIQQhqIgc2AkBBfyELIAcLIQlBACEHAkADQCAJKAIAIg1FDQEgCEEEaiANEIYBIgpBAEgiDSAKIAsgB2tLckUEQCAJQQRqIQkgCyAHIApqIgdLDQEMAgsLIA0NDQtBPSEKIAdBAEgNCyAAQSAgEyAHIAwQKSAHRQRAQQAhBwwBC0EAIQogCCgCQCEJA0AgCSgCACINRQ0BIAhBBGogDRCGASINIApqIgogB0sNASAAIAhBBGogDRAmIAlBBGohCSAHIApLDQALCyAAQSAgEyAHIAxBgMAAcxApIBMgByAHIBNIGyEHDAgLIA9BACALQQBIGw0IQT0hCiAAIAgrA0AgEyALIAwgByAFERwAIgdBAE4NBwwJCyAIIAgpA0A8ADdBASELIBchDSAJIQwMBAsgBy0AASEJIAdBAWohBwwACwALIAANByAVRQ0CQQEhBwNAIAQgB0ECdGooAgAiAARAIAMgB0EDdGogACACIAYQhwFBASEOIAdBAWoiB0EKRw0BDAkLC0EBIQ4gB0EKTw0HA0AgBCAHQQJ0aigCAA0BIAdBAWoiB0EKRw0ACwwHC0EcIQoMBAsgCyAKIA1rIhAgCyAQShsiCSASQf////8Hc0oNAkE9IQogEyAJIBJqIgsgCyATSBsiByAYSg0DIABBICAHIAsgDBApIAAgFiASECYgAEEwIAcgCyAMQYCABHMQKSAAQTAgCSAQQQAQKSAAIA0gEBAmIABBICAHIAsgDEGAwABzECkMAQsLQQAhDgwDC0E9IQoLQfw7IAo2AgALQX8hDgsgCEHQAGokACAOC9kCAQR/IwBB0AFrIgUkACAFIAI2AswBIAVBoAFqIgJBAEEoECoaIAUgBSgCzAE2AsgBAkBBACABIAVByAFqIAVB0ABqIAIgAyAEEIoBQQBIBEBBfyEEDAELQQEgBiAAKAJMQQBOGyEGIAAoAgAhByAAKAJIQQBMBEAgACAHQV9xNgIACwJ/AkACQCAAKAIwRQRAIABB0AA2AjAgAEEANgIcIABCADcDECAAKAIsIQggACAFNgIsDAELIAAoAhANAQtBfyAAEJ0BDQEaCyAAIAEgBUHIAWogBUHQAGogBUGgAWogAyAEEIoBCyECIAgEQCAAQQBBACAAKAIkEQYAGiAAQQA2AjAgACAINgIsIABBADYCHCAAKAIUIQEgAEIANwMQIAJBfyABGyECCyAAIAAoAgAiACAHQSBxcjYCAEF/IAIgAEEgcRshBCAGRQ0ACyAFQdABaiQAIAQLfwIBfwF+IAC9IgNCNIinQf8PcSICQf8PRwR8IAJFBEAgASAARAAAAAAAAAAAYQR/QQAFIABEAAAAAAAA8EOiIAEQjAEhACABKAIAQUBqCzYCACAADwsgASACQf4HazYCACADQv////////+HgH+DQoCAgICAgIDwP4S/BSAACwsVACAARQRAQQAPC0H8OyAANgIAQX8LzgECA38CfSMAQRBrIgMkAEEBIQQgA0EIaiAAQfwAaiIFIAAgAUEBdGpBxABqIgEvAQAQHwJAAkAgAyoCCCIHIAIqAgAiBlwEQCAHIAdbBEAgAi0ABCECDAILIAYgBlwhBAsgAi0ABCECIARFDQAgAy0ADCACQf8BcUYNAQsgBSABIAYgAhA5A0AgAC0AACIBQQRxDQEgACABQQRyOgAAIAAoAhAiAQRAIAAgAREAAAsgAEGAgID+BzYCnAEgACgC5AMiAA0ACwsgA0EQaiQAC9EDAEHUO0GoHBAcQdU7QYoWQQFBAUEAEBtB1jtB/RJBAUGAf0H/ABAEQdc7QfYSQQFBgH9B/wAQBEHYO0H0EkEBQQBB/wEQBEHZO0GUCkECQYCAfkH//wEQBEHaO0GLCkECQQBB//8DEARB2ztBsQpBBEGAgICAeEH/////BxAEQdw7QagKQQRBAEF/EARB3TtB+BhBBEGAgICAeEH/////BxAEQd47Qe8YQQRBAEF/EARB3ztBjxBCgICAgICAgICAf0L///////////8AEIQBQeA7QY4QQgBCfxCEAUHhO0GIEEEEEA1B4jtB9BtBCBANQeM7QaQZEA5B5DtBmSIQDkHlO0EEQZcZEAhB5jtBAkGwGRAIQec7QQRBvxkQCEHoO0GPFhAaQek7QQBB1CEQAUHqO0EAQboiEAFB6ztBAUHyIRABQew7QQJB5B4QAUHtO0EDQYMfEAFB7jtBBEGrHxABQe87QQVByB8QAUHwO0EEQd8iEAFB8TtBBUH9IhABQeo7QQBBriAQAUHrO0EBQY0gEAFB7DtBAkHwIBABQe07QQNBziAQAUHuO0EEQbMhEAFB7ztBBUGRIRABQfI7QQZB7h8QAUHzO0EHQaQjEAELJQAgAEH0JjYCACAALQAEBEAgACgCCEH9DxBmCyAAKAIIEAYgAAsDAAALJQAgAEHsJzYCACAALQAEBEAgACgCCEH9DxBmCyAAKAIIEAYgAAs3AQJ/QQQQHiICIAE2AgBBBBAeIgMgATYCAEGjOyAAQeI7QfooQcEBIAJB4jtB/ihBwgEgAxAHCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRBQALOQEBfyABIAAoAgQiBEEBdWohASAAKAIAIQAgASACIAMgBEEBcQR/IAEoAgAgAGooAgAFIAALEQMACwkAIAEgABEAAAsHACAAEQ4ACzUBAX8gASAAKAIEIgJBAXVqIQEgACgCACEAIAEgAkEBcQR/IAEoAgAgAGooAgAFIAALEQAACzABAX8jAEEQayICJAAgAiABNgIIIAJBCGogABECACEAIAIoAggQBiACQRBqJAAgAAsMACABIAAoAgARAAALCQAgAEEBOgAEC9coAQJ/QaA7QaE7QaI7QQBBjCZBB0GPJkEAQY8mQQBB2RZBkSZBCBAFQQgQHiIAQoiAgIAQNwMAQaA7QZcbQQZBoCZBuCZBCSAAQQEQAEGkO0GlO0GmO0GgO0GMJkEKQYwmQQtBjCZBDEG4EUGRJkENEAVBBBAeIgBBDjYCAEGkO0HoFEECQcAmQcgmQQ8gAEEAEABBoDtBowxBAkHMJkHUJkEQQREQA0GgO0GAHEEDQaQnQbAnQRJBExADQbg7Qbk7Qbo7QQBBjCZBFEGPJkEAQY8mQQBB6RZBkSZBFRAFQQgQHiIAQoiAgIAQNwMAQbg7QegcQQJBuCdByCZBFiAAQQEQAEG7O0G8O0G9O0G4O0GMJkEXQYwmQRhBjCZBGUHPEUGRJkEaEAVBBBAeIgBBGzYCAEG7O0HoFEECQcAnQcgmQRwgAEEAEABBuDtBowxBAkHIJ0HUJkEdQR4QA0G4O0GAHEEDQaQnQbAnQRJBHxADQb47Qb87QcA7QQBBjCZBIEGPJkEAQY8mQQBB2hpBkSZBIRAFQb47QQFB+CdBjCZBIkEjEA9BvjtBkBtBAUH4J0GMJkEiQSMQA0G+O0HpCEECQfwnQcgmQSRBJRADQQgQHiIAQQA2AgQgAEEmNgIAQb47Qa0cQQRBkChBoChBJyAAQQAQAEEIEB4iAEEANgIEIABBKDYCAEG+O0GkEUEDQagoQbQoQSkgAEEAEABBCBAeIgBBADYCBCAAQSo2AgBBvjtByB1BA0G8KEHIKEErIABBABAAQQgQHiIAQQA2AgQgAEEsNgIAQb47QaYQQQNB0ChByChBLSAAQQAQAEEIEB4iAEEANgIEIABBLjYCAEG+O0HLHEEDQdwoQbAnQS8gAEEAEABBCBAeIgBBADYCBCAAQTA2AgBBvjtB0h1BAkHoKEHUJkExIABBABAAQQgQHiIAQQA2AgQgAEEyNgIAQb47QZcQQQJB8ChB1CZBMyAAQQAQAEHBO0GECkH4KEE0QZEmQTUQCkHiD0EAEEhB6g5BCBBIQYITQRAQSEHxFUEYEEhBgxdBIBBIQfAOQSgQSEHBOxAJQaM7Qf8aQfgoQTZBkSZBNxAKQYMXQQAQkwFB8A5BCBCTAUGjOxAJQcI7QYobQfgoQThBkSZBORAKQQQQHiIAQQg2AgBBBBAeIgFBCDYCAEHCO0GEG0HiO0H6KEE6IABB4jtB/ihBOyABEAdBBBAeIgBBADYCAEEEEB4iAUEANgIAQcI7QeUOQds7QdQmQTwgAEHbO0HIKEE9IAEQB0HCOxAJQcM7QcQ7QcU7QQBBjCZBPkGPJkEAQY8mQQBB+xtBkSZBPxAFQcM7QQFBhClBjCZBwABBwQAQD0HDO0HXDkEBQYQpQYwmQcAAQcEAEANBwztB0BpBAkGIKUHUJkHCAEHDABADQcM7QekIQQJBkClByCZBxABBxQAQA0EIEB4iAEEANgIEIABBxgA2AgBBwztB9w9BAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABByAA2AgBBwztB6htBA0GYKUHIKEHJACAAQQAQAEEIEB4iAEEANgIEIABBygA2AgBBwztBnxtBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABBzAA2AgBBwztB0BRBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABBzgA2AgBBwztBiA1BBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABBzwA2AgBBwztB3RNBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0AA2AgBBwztB+QtBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0QA2AgBBwztBuBBBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0gA2AgBBwztB5RpBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB0wA2AgBBwztB/BRBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB1AA2AgBBwztBlRNBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB1QA2AgBBwztBtQpBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB1gA2AgBBwztBuBVBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB1wA2AgBBwztBmw1BBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB2AA2AgBBwztB7RNBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB2QA2AgBBwztBxAlBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB2gA2AgBBwztB8QhBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB2wA2AgBBwztBhwlBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB3QA2AgBBwztB1BBBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB3gA2AgBBwztB5gxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB3wA2AgBBwztBzBNBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABB4AA2AgBBwztBrAlBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB4QA2AgBBwztBnxZBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB4gA2AgBBwztBoRdBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB4wA2AgBBwztBvw1BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB5AA2AgBBwztB+xNBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABB5QA2AgBBwztBkQ9BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB5gA2AgBBwztBwQxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB5wA2AgBBwztBvhNBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABB6AA2AgBBwztBsxdBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB6QA2AgBBwztBzw1BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB6gA2AgBBwztBpQ9BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB6wA2AgBBwztB0gxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7AA2AgBBwztBiRdBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7QA2AgBBwztBrA1BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7gA2AgBBwztB9w5BA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB7wA2AgBBwztBrQxBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB8AA2AgBBwztB/RhBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB8QA2AgBBwztBshRBA0HIKUH+KEHcACAAQQAQAEEIEB4iAEEANgIEIABB8gA2AgBBwztBlBJBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB8wA2AgBBwztBzhlBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9AA2AgBBwztB4g1BBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9QA2AgBBwztBrRNBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9gA2AgBBwztB+gxBBEGwKUHAKUHNACAAQQAQAEEIEB4iAEEANgIEIABB9wA2AgBBwztBnhVBA0GkKUHIKEHLACAAQQAQAEEIEB4iAEEANgIEIABB+AA2AgBBwztBrxtBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB+gA2AgBBwztB3BRBA0HcKUGwJ0H7ACAAQQAQAEEIEB4iAEEANgIEIABB/AA2AgBBwztBiQxBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB/QA2AgBBwztBxhBBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB/gA2AgBBwztB8hpBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABB/wA2AgBBwztBjRVBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBgAE2AgBBwztBoRNBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBgQE2AgBBwztBxwpBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBggE2AgBBwztBwhVBA0HcKUGwJ0H7ACAAQQAQAEEIEB4iAEEANgIEIABBgwE2AgBBwztB4RBBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBhQE2AgBBwztBuAlBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBhwE2AgBBwztBrRZBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBiAE2AgBBwztBqhdBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBiQE2AgBBwztBmw9BAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBigE2AgBBwztBvxdBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBiwE2AgBBwztBsg9BAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBjAE2AgBBwztBlRdBAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBjQE2AgBBwztBhA9BAkHoKUHUJkGEASAAQQAQAEEIEB4iAEEANgIEIABBjgE2AgBBwztBihlBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBjwE2AgBBwztBwRRBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBkAE2AgBBwztBnhJBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBkgE2AgBBwztB0AlBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBkwE2AgBBwztB/AhBAkHUKUHUJkH5ACAAQQAQAEEIEB4iAEEANgIEIABBlAE2AgBBwztB2RlBA0HcKUGwJ0H7ACAAQQAQAEEIEB4iAEEANgIEIABBlQE2AgBBwztBtBNBA0GMKkGYKkGWASAAQQAQAEEIEB4iAEEANgIEIABBlwE2AgBBwztBhxxBBEGgKkGgKEGYASAAQQAQAEEIEB4iAEEANgIEIABBmQE2AgBBwztBnBxBA0GwKkHIKEGaASAAQQAQAEEIEB4iAEEANgIEIABBmwE2AgBBwztBmgpBAkG8KkHUJkGcASAAQQAQAEEIEB4iAEEANgIEIABBnQE2AgBBwztBmQxBAkHEKkHUJkGeASAAQQAQAEEIEB4iAEEANgIEIABBnwE2AgBBwztBkxxBA0HMKkGwJ0GgASAAQQAQAEEIEB4iAEEANgIEIABBoQE2AgBBwztBuxZBA0HYKkHIKEGiASAAQQAQAEEIEB4iAEEANgIEIABBowE2AgBBwztBvxtBAkHkKkHUJkGkASAAQQAQAEEIEB4iAEEANgIEIABBpQE2AgBBwztB0xtBA0HYKkHIKEGiASAAQQAQAEEIEB4iAEEANgIEIABBpgE2AgBBwztBqB1BA0HsKkHIKEGnASAAQQAQAEEIEB4iAEEANgIEIABBqAE2AgBBwztBph1BAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBqQE2AgBBwztBuR1BA0H4KkHIKEGqASAAQQAQAEEIEB4iAEEANgIEIABBqwE2AgBBwztBtx1BAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBrAE2AgBBwztB3whBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBrQE2AgBBwztB1whBAkGEK0HUJkGuASAAQQAQAEEIEB4iAEEANgIEIABBrwE2AgBBwztB3hVBAkGQKUHIJkHHACAAQQAQAEEIEB4iAEEANgIEIABBsAE2AgBBwztB3AlBAkGEK0HUJkGuASAAQQAQAEEIEB4iAEEANgIEIABBsQE2AgBBwztB6QlBBUGQK0GkK0GyASAAQQAQAEEIEB4iAEEANgIEIABBswE2AgBBwztB5w9BAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtAE2AgBBwztB0Q9BAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtQE2AgBBwztBhhNBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtgE2AgBBwztB+BVBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBtwE2AgBBwztByxdBAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBuAE2AgBBwztBvw9BAkHwKUH6KEGGASAAQQAQAEEIEB4iAEEANgIEIABBuQE2AgBBwztB+QlBAkGsK0HUJkG6ASAAQQAQAEEIEB4iAEEANgIEIABBuwE2AgBBwztBzBVBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBvAE2AgBBwztBqBJBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBvQE2AgBBwztB5BlBA0H4KUGEKkGRASAAQQAQAEEIEB4iAEEANgIEIABBvgE2AgBBwztBqxVBAkHUKUHUJkH5ACAAQQAQAAtZAQF/IAAgACgCSCIBQQFrIAFyNgJIIAAoAgAiAUEIcQRAIAAgAUEgcjYCAEF/DwsgAEIANwIEIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhBBAAtHAAJAIAFBA00EfyAAIAFBAnRqQQRqBSABQQRrIgEgACgCGCIAKAIEIAAoAgAiAGtBAnVPDQEgACABQQJ0agsoAgAPCxACAAs4AQF/IAFBAEgEQBACAAsgAUEBa0EFdkEBaiIBQQJ0EB4hAiAAIAE2AgggAEEANgIEIAAgAjYCAAvSBQEJfyAAIAEvAQA7AQAgACABKQIENwIEIAAgASkCDDcCDCAAIAEoAhQ2AhQCQAJAIAEoAhgiA0UNAEEYEB4iBUEANgIIIAVCADcCACADKAIEIgEgAygCACICRwRAIAEgAmsiAkEASA0CIAUgAhAeIgE2AgAgBSABIAJqNgIIIAMoAgAiAiADKAIEIgZHBEADQCABIAIoAgA2AgAgAUEEaiEBIAJBBGoiAiAGRw0ACwsgBSABNgIECyAFQgA3AgwgBUEANgIUIAMoAhAiAUUNACAFQQxqIAEQnwEgAygCDCEGIAUgBSgCECIEIAMoAhAiAkEfcWogAkFgcWoiATYCEAJAAkAgBEUEQCABQQFrIQMMAQsgAUEBayIDIARBAWtzQSBJDQELIAUoAgwgA0EFdkEAIAFBIU8bQQJ0akEANgIACyAFKAIMIARBA3ZB/P///wFxaiEBIARBH3EiA0UEQCACQQBMDQEgAkEgbSEDIAJBH2pBP08EQCABIAYgA0ECdBAzGgsgAiADQQV0ayICQQBMDQEgASADQQJ0IgNqIgEgASgCAEF/QSAgAmt2IgFBf3NxIAMgBmooAgAgAXFyNgIADAELIAJBAEwNAEF/IAN0IQhBICADayEEIAJBIE4EQCAIQX9zIQkgASgCACEHA0AgASAHIAlxIAYoAgAiByADdHI2AgAgASABKAIEIAhxIAcgBHZyIgc2AgQgBkEEaiEGIAFBBGohASACQT9LIQogAkEgayECIAoNAAsgAkEATA0BCyABIAEoAgBBfyAEIAQgAiACIARKGyIEa3YgCHFBf3NxIAYoAgBBf0EgIAJrdnEiBiADdHI2AgAgAiAEayICQQBMDQAgASADIARqQQN2Qfz///8BcWoiASABKAIAQX9BICACa3ZBf3NxIAYgBHZyNgIACyAAKAIYIQEgACAFNgIYIAEEQCABEFsLDwsQAgALvQMBB38gAARAIwBBIGsiBiQAIAAoAgAiASgC5AMiAwRAIAMgARBvGiABQQA2AuQDCyABKALsAyICIAEoAugDIgNHBEBBASACIANrQQJ1IgIgAkEBTRshBEEAIQIDQCADIAJBAnRqKAIAQQA2AuQDIAJBAWoiAiAERw0ACwsgASADNgLsAwJAIAMgAUHwA2oiAigCAEYNACAGQQhqQQBBACACEEoiAigCBCABKALsAyABKALoAyIEayIFayIDIAQgBRAzIQUgASgC6AMhBCABIAU2AugDIAIgBDYCBCABKALsAyEFIAEgAigCCDYC7AMgAiAFNgIIIAEoAvADIQcgASACKAIMNgLwAyACIAQ2AgAgAiAHNgIMIAQgBUcEQCACIAUgBCAFa0EDakF8cWo2AggLIARFDQAgBBAnIAEoAugDIQMLIAMEQCABIAM2AuwDIAMQJwsgASgClAEhAyABQQA2ApQBIAMEQCADEFsLIAEQJyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALIAAoAgQhASAAQQA2AgQgAQRAIAEgASgCACgCBBEAAAsgBkEgaiQAIAAQIwsLtQEBAX8jAEEQayICJAACfyABBEAgASgCACEBQYgEEB4gARBcIAENARogAkH3GTYCACACEHIQJAALQZQ7LQAARQRAQfg6QQM2AgBBiDtCgICAgICAgMA/NwIAQYA7QgA3AgBBlDtBAToAAEH8OkH8Oi0AAEH+AXE6AABB9DpBADYCAEGQO0EANgIAC0GIBBAeQfQ6EFwLIQEgAEIANwIEIAAgATYCACABIAA2AgQgAkEQaiQAIAALGwEBfyAABEAgACgCACIBBEAgARAjCyAAECMLC0kBAn9BBBAeIQFBIBAeIgBBADYCHCAAQoCAgICAgIDAPzcCFCAAQgA3AgwgAEEAOgAIIABBAzYCBCAAQQA2AgAgASAANgIAIAELIAAgAkEFR0EAIAIbRQRAQbgwIAMgBBBJDwsgAyAEEHALIgEBfiABIAKtIAOtQiCGhCAEIAARFQAiBUIgiKckASAFpwuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGECsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEECsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACCwQAQgALBABBAAuKBQIGfgJ/IAEgASgCAEEHakF4cSIBQRBqNgIAIAAhCSABKQMAIQMgASkDCCEGIwBBIGsiCCQAAkAgBkL///////////8AgyIEQoCAgICAgMCAPH0gBEKAgICAgIDA/8MAfVQEQCAGQgSGIANCPIiEIQQgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIARCgYCAgICAgIDAAHwhAgwCCyAEQoCAgICAgICAQH0hAiADQoCAgICAgICACFINASACIARCAYN8IQIMAQsgA1AgBEKAgICAgIDA//8AVCAEQoCAgICAgMD//wBRG0UEQCAGQgSGIANCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiAEQv///////7//wwBWDQBCACECIARCMIinIgBBkfcASQ0AIAMhAiAGQv///////z+DQoCAgICAgMAAhCIFIQcCQCAAQYH3AGsiAUHAAHEEQCACIAFBQGqthiEHQgAhAgwBCyABRQ0AIAcgAa0iBIYgAkHAACABa62IhCEHIAIgBIYhAgsgCCACNwMQIAggBzcDGAJAQYH4ACAAayIAQcAAcQRAIAUgAEFAaq2IIQNCACEFDAELIABFDQAgBUHAACAAa62GIAMgAK0iAoiEIQMgBSACiCEFCyAIIAM3AwAgCCAF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ASAAKAIAIQAgASACQQFxBH8gASgCACAAaigCAAUgAAsRCwALYQECfyMAQRBrIgIkACABIAAoAgQiA0EBdWohASAAKAIAIQAgAiABIANBAXEEfyABKAIAIABqKAIABSAACxEBAEEQEB4iACACKQMINwMIIAAgAikDADcDACACQRBqJAAgAAtjAQJ/IwBBEGsiAyQAIAEgACgCBCIEQQF1aiEBIAAoAgAhACADIAEgAiAEQQFxBH8gASgCACAAaigCAAUgAAsRAwBBEBAeIgAgAykDCDcDCCAAIAMpAwA3AwAgA0EQaiQAIAALNwEBfyABIAAoAgQiA0EBdWohASAAKAIAIQAgASACIANBAXEEfyABKAIAIABqKAIABSAACxEEAAs5AQF/IAEgACgCBCIEQQF1aiEBIAAoAgAhACABIAIgAyAEQQFxBH8gASgCACAAaigCAAUgAAsRCAALCQAgASAAEQIACwUAQcM7Cw8AIAEgACgCAGogAjYCAAsNACABIAAoAgBqKAIACxgBAX9BEBAeIgBCADcDCCAAQQA2AgAgAAsYAQF/QRAQHiIAQgA3AwAgAEIANwMIIAALDABBMBAeQQBBMBAqCzcBAX8gASAAKAIEIgNBAXVqIQEgACgCACEAIAEgAiADQQFxBH8gASgCACAAaigCAAUgAAsRHgALBQBBvjsLIQAgACABKAIAIAEgASwAC0EASBtBuzsgAigCABAQNgIACyoBAX9BDBAeIgFBADoABCABIAAoAgA2AgggAEEANgIAIAFB2Cc2AgAgAQsFAEG7OwsFAEG4OwshACAAIAEoAgAgASABLAALQQBIG0GkOyACKAIAEBA2AgAL2AEBBH8jAEEgayIDJAAgASgCACIEQfD///8HSQRAAkACQCAEQQtPBEAgBEEPckEBaiIFEB4hBiADIAVBgICAgHhyNgIQIAMgBjYCCCADIAQ2AgwgBCAGaiEFDAELIAMgBDoAEyADQQhqIgYgBGohBSAERQ0BCyAGIAFBBGogBBArGgsgBUEAOgAAIAMgAjYCACADQRhqIANBCGogAyAAEQMAIAMoAhgQHSADKAIYIgAQBiADKAIAEAYgAywAE0EASARAIAMoAggQIwsgA0EgaiQAIAAPCxACAAsqAQF/QQwQHiIBQQA6AAQgASAAKAIANgIIIABBADYCACABQeAmNgIA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AkEIaiAIIAYQHyACIAcgAC8AABAfQQEhAyACKgIIIgogAioCACILXAR/IAogClsNAyALIAtcBSADC0UNAiACLQAMIAItAARHDQILIABBAmohAEEBIQMgBCEGQQEhBCAGRQ0ACyABLwB6IgBBB3FFBEAgBS0AekEHcUUNAgsgCCAAECAiCiAHIAUvAHoQICILWw0BIAogClsNACALIAtcDQELIAFBFGogBUEUakHoABArGiABQfwAaiAFQfwAahCgAQNAIAEtAAAiAEEEcQ0BIAEgAEEEcjoAACABKAIQIgAEQCABIAARAAALIAFBgICA/gc2ApwBIAEoAuQDIgENAAsLIAJBEGokAAvGAwEEfyMAQaAEayICJAAgACgCBCEBIABBADYCBCABBEAgASABKAIAKAIEEQAACyAAKAIIIQEgAEEANgIIIAEEQCABIAEoAgAoAgQRAAALAkAgACgCACIAKALoAyAAKALsA0YEQCAAKALkAw0BIAAgAkEYaiAAKAL0AxBcIgEpAgA3AgAgACABKAIQNgIQIAAgASkCCDcCCCAAQRRqIAFBFGpB6AAQKxogACABKQKMATcCjAEgACABKQKEATcChAEgACABKQJ8NwJ8IAEoApQBIQQgAUEANgKUASAAKAKUASEDIAAgBDYClAEgAwRAIAMQWwsgAEGYAWogAUGYAWpB0AIQKxogACgC6AMiAwRAIAAgAzYC7AMgAxAjCyAAIAEoAugDNgLoAyAAIAEoAuwDNgLsAyAAIAEoAvADNgLwAyABQQA2AvADIAFCADcC6AMgACABKQL8AzcC/AMgACABKQL0AzcC9AMgACABKAKEBDYChAQgASgClAEhACABQQA2ApQBIAAEQCAAEFsLIAJBoARqJAAPCyACQfAcNgIQIABBBUHYJSACQRBqECwQJAALIAJB5hE2AgAgAEEFQdglIAIQLBAkAAsLAEEMEB4gABCiAQsLAEEMEB5BABCiAQsNACAAKAIALQAIQQFxCwoAIAAoAgAoAhQLGQAgAUH/AXEEQBACAAsgACgCACgCEEEBcQsYACAAKAIAIgAgAC0ACEH+AXEgAXI6AAgLJgAgASAAKAIAIgAoAhRHBEAgACABNgIUIAAgACgCDEEBajYCDAsLkgEBAn8jAEEQayICJAAgACgCACEAIAFDAAAAAGAEQCABIAAqAhhcBEAgACABOAIYIAAgACgCDEEBajYCDAsgAkEQaiQADwsgAkGIFDYCACMAQRBrIgMkACADIAI2AgwCQCAARQRAQbgwQdglIAIQSRoMAQsgAEEAQQVB2CUgAiAAKAIEEQ0AGgsgA0EQaiQAECQACz8AIAFB/wFxRQRAIAIgACgCACIAKAIQIgFBAXFHBEAgACABQX5xIAJyNgIQIAAgACgCDEEBajYCDAsPCxACAAsL4CYjAEGACAuBHk9ubHkgbGVhZiBub2RlcyB3aXRoIGN1c3RvbSBtZWFzdXJlIGZ1bmN0aW9ucyBzaG91bGQgbWFudWFsbHkgbWFyayB0aGVtc2VsdmVzIGFzIGRpcnR5AGlzRGlydHkAbWFya0RpcnR5AGRlc3Ryb3kAc2V0RGlzcGxheQBnZXREaXNwbGF5AHNldEZsZXgALSsgICAwWDB4AC0wWCswWCAwWC0weCsweCAweABzZXRGbGV4R3JvdwBnZXRGbGV4R3JvdwBzZXRPdmVyZmxvdwBnZXRPdmVyZmxvdwBoYXNOZXdMYXlvdXQAY2FsY3VsYXRlTGF5b3V0AGdldENvbXB1dGVkTGF5b3V0AHVuc2lnbmVkIHNob3J0AGdldENoaWxkQ291bnQAdW5zaWduZWQgaW50AHNldEp1c3RpZnlDb250ZW50AGdldEp1c3RpZnlDb250ZW50AGF2YWlsYWJsZUhlaWdodCBpcyBpbmRlZmluaXRlIHNvIGhlaWdodFNpemluZ01vZGUgbXVzdCBiZSBTaXppbmdNb2RlOjpNYXhDb250ZW50AGF2YWlsYWJsZVdpZHRoIGlzIGluZGVmaW5pdGUgc28gd2lkdGhTaXppbmdNb2RlIG11c3QgYmUgU2l6aW5nTW9kZTo6TWF4Q29udGVudABzZXRBbGlnbkNvbnRlbnQAZ2V0QWxpZ25Db250ZW50AGdldFBhcmVudABpbXBsZW1lbnQAc2V0TWF4SGVpZ2h0UGVyY2VudABzZXRIZWlnaHRQZXJjZW50AHNldE1pbkhlaWdodFBlcmNlbnQAc2V0RmxleEJhc2lzUGVyY2VudABzZXRHYXBQZXJjZW50AHNldFBvc2l0aW9uUGVyY2VudABzZXRNYXJnaW5QZXJjZW50AHNldE1heFdpZHRoUGVyY2VudABzZXRXaWR0aFBlcmNlbnQAc2V0TWluV2lkdGhQZXJjZW50AHNldFBhZGRpbmdQZXJjZW50AGhhbmRsZS50eXBlKCkgPT0gU3R5bGVWYWx1ZUhhbmRsZTo6VHlwZTo6UG9pbnQgfHwgaGFuZGxlLnR5cGUoKSA9PSBTdHlsZVZhbHVlSGFuZGxlOjpUeXBlOjpQZXJjZW50AGNyZWF0ZURlZmF1bHQAdW5pdAByaWdodABoZWlnaHQAc2V0TWF4SGVpZ2h0AGdldE1heEhlaWdodABzZXRIZWlnaHQAZ2V0SGVpZ2h0AHNldE1pbkhlaWdodABnZXRNaW5IZWlnaHQAZ2V0Q29tcHV0ZWRIZWlnaHQAZ2V0Q29tcHV0ZWRSaWdodABsZWZ0AGdldENvbXB1dGVkTGVmdAByZXNldABfX2Rlc3RydWN0AGZsb2F0AHVpbnQ2NF90AHVzZVdlYkRlZmF1bHRzAHNldFVzZVdlYkRlZmF1bHRzAHNldEFsaWduSXRlbXMAZ2V0QWxpZ25JdGVtcwBzZXRGbGV4QmFzaXMAZ2V0RmxleEJhc2lzAENhbm5vdCBnZXQgbGF5b3V0IHByb3BlcnRpZXMgb2YgbXVsdGktZWRnZSBzaG9ydGhhbmRzAHNldFBvaW50U2NhbGVGYWN0b3IATWVhc3VyZUNhbGxiYWNrV3JhcHBlcgBEaXJ0aWVkQ2FsbGJhY2tXcmFwcGVyAENhbm5vdCByZXNldCBhIG5vZGUgc3RpbGwgYXR0YWNoZWQgdG8gYSBvd25lcgBzZXRCb3JkZXIAZ2V0Qm9yZGVyAGdldENvbXB1dGVkQm9yZGVyAGdldE51bWJlcgBoYW5kbGUudHlwZSgpID09IFN0eWxlVmFsdWVIYW5kbGU6OlR5cGU6Ok51bWJlcgB1bnNpZ25lZCBjaGFyAHRvcABnZXRDb21wdXRlZFRvcABzZXRGbGV4V3JhcABnZXRGbGV4V3JhcABzZXRHYXAAZ2V0R2FwACVwAHNldEhlaWdodEF1dG8Ac2V0RmxleEJhc2lzQXV0bwBzZXRQb3NpdGlvbkF1dG8Ac2V0TWFyZ2luQXV0bwBzZXRXaWR0aEF1dG8AU2NhbGUgZmFjdG9yIHNob3VsZCBub3QgYmUgbGVzcyB0aGFuIHplcm8Ac2V0QXNwZWN0UmF0aW8AZ2V0QXNwZWN0UmF0aW8Ac2V0UG9zaXRpb24AZ2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBzZXRGbGV4RGlyZWN0aW9uAGdldEZsZXhEaXJlY3Rpb24Ac2V0RGlyZWN0aW9uAGdldERpcmVjdGlvbgBzZXRNYXJnaW4AZ2V0TWFyZ2luAGdldENvbXB1dGVkTWFyZ2luAG1hcmtMYXlvdXRTZWVuAG5hbgBib3R0b20AZ2V0Q29tcHV0ZWRCb3R0b20AYm9vbABlbXNjcmlwdGVuOjp2YWwAc2V0RmxleFNocmluawBnZXRGbGV4U2hyaW5rAHNldEFsd2F5c0Zvcm1zQ29udGFpbmluZ0Jsb2NrAE1lYXN1cmVDYWxsYmFjawBEaXJ0aWVkQ2FsbGJhY2sAZ2V0TGVuZ3RoAHdpZHRoAHNldE1heFdpZHRoAGdldE1heFdpZHRoAHNldFdpZHRoAGdldFdpZHRoAHNldE1pbldpZHRoAGdldE1pbldpZHRoAGdldENvbXB1dGVkV2lkdGgAcHVzaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1NtYWxsVmFsdWVCdWZmZXIuaAAvaG9tZS9ydW5uZXIvd29yay95b2dhL3lvZ2EvamF2YXNjcmlwdC8uLi95b2dhL3N0eWxlL1N0eWxlVmFsdWVQb29sLmgAdW5zaWduZWQgbG9uZwBzZXRCb3hTaXppbmcAZ2V0Qm94U2l6aW5nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBzZXRQYWRkaW5nAGdldFBhZGRpbmcAZ2V0Q29tcHV0ZWRQYWRkaW5nAFRyaWVkIHRvIGNvbnN0cnVjdCBZR05vZGUgd2l0aCBudWxsIGNvbmZpZwBBdHRlbXB0aW5nIHRvIGNvbnN0cnVjdCBOb2RlIHdpdGggbnVsbCBjb25maWcAY3JlYXRlV2l0aENvbmZpZwBpbmYAc2V0QWxpZ25TZWxmAGdldEFsaWduU2VsZgBTaXplAHZhbHVlAFZhbHVlAGNyZWF0ZQBtZWFzdXJlAHNldFBvc2l0aW9uVHlwZQBnZXRQb3NpdGlvblR5cGUAaXNSZWZlcmVuY2VCYXNlbGluZQBzZXRJc1JlZmVyZW5jZUJhc2VsaW5lAGNvcHlTdHlsZQBkb3VibGUATm9kZQBleHRlbmQAaW5zZXJ0Q2hpbGQAZ2V0Q2hpbGQAcmVtb3ZlQ2hpbGQAdm9pZABzZXRFeHBlcmltZW50YWxGZWF0dXJlRW5hYmxlZABpc0V4cGVyaW1lbnRhbEZlYXR1cmVFbmFibGVkAGRpcnRpZWQAQ2Fubm90IHJlc2V0IGEgbm9kZSB3aGljaCBzdGlsbCBoYXMgY2hpbGRyZW4gYXR0YWNoZWQAdW5zZXRNZWFzdXJlRnVuYwB1bnNldERpcnRpZWRGdW5jAHNldEVycmF0YQBnZXRFcnJhdGEATWVhc3VyZSBmdW5jdGlvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRpbWVuc2lvbiB0byBZb2dhOiBbd2lkdGg9JWYsIGhlaWdodD0lZl0ARXhwZWN0IGN1c3RvbSBiYXNlbGluZSBmdW5jdGlvbiB0byBub3QgcmV0dXJuIE5hTgBOQU4ASU5GAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVk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";if(!Tq(kq)){var VY=kq;kq=g.locateFile?g.locateFile(VY,Z):Z+VY}function WY(){var Q=kq;try{if(Q==kq&&G)return new Uint8Array(G);if(Tq(Q))try{var J=H_(Q.slice(37)),X=new Uint8Array(J.length);for(Q=0;Q<J.length;++Q)X[Q]=J.charCodeAt(Q);var H=X}catch(S){throw Error("Converting base64 string to bytes failed.")}else H=void 0;var W=H;if(W)return W;throw"both async and sync fetching of the wasm failed"}catch(S){SA(S)}}function r9(){return G||typeof fetch!="function"?Promise.resolve().then(function(){return WY()}):fetch(kq,{credentials:"same-origin"}).then(function(Q){if(!Q.ok)throw"failed to load wasm binary file at '"+kq+"'";return Q.arrayBuffer()}).catch(function(){return WY()})}function hj(Q){for(;0<Q.length;)Q.shift()(g)}function NY(Q){if(Q===void 0)return"_unknown";Q=Q.replace(/[^a-zA-Z0-9_]/g,"$");var J=Q.charCodeAt(0);return 48<=J&&57>=J?"_"+Q:Q}function zj(Q,J){return Q=NY(Q),function(){return J.apply(this,arguments)}}var Uq=[{},{value:void 0},{value:null},{value:!0},{value:!1}],Bj=[];function vK(Q){var J=Error,X=zj(Q,function(H){this.name=Q,this.message=H,H=Error(H).stack,H!==void 0&&(this.stack=this.toString()+`
|
|
4
|
+
`+H.replace(/^Error(:[^\n]*)?\n/,""))});return X.prototype=Object.create(J.prototype),X.prototype.constructor=X,X.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},X}var S6=void 0;function ZA(Q){throw new S6(Q)}var IE=(Q)=>{return Q||ZA("Cannot use deleted val. handle = "+Q),Uq[Q].value},mK=(Q)=>{switch(Q){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var J=Bj.length?Bj.pop():Uq.length;return Uq[J]={ga:1,value:Q},J}},TY=void 0,IY=void 0;function BA(Q){for(var J="";N[Q];)J+=IY[N[Q++]];return J}var xE=[];function wj(){for(;xE.length;){var Q=xE.pop();Q.M.$=!1,Q.delete()}}var PE=void 0,Dq={};function Cj(Q,J){for(J===void 0&&ZA("ptr should not be undefined");Q.R;)J=Q.ba(J),Q=Q.R;return J}var mg={};function xY(Q){Q=kY(Q);var J=BA(Q);return vq(Q),J}function PY(Q,J){var X=mg[Q];return X===void 0&&ZA(J+" has unknown type "+xY(Q)),X}function fK(){}var kj=!1;function RY(Q){--Q.count.value,Q.count.value===0&&(Q.T?Q.U.W(Q.T):Q.P.N.W(Q.O))}function SY(Q,J,X){if(J===X)return Q;if(X.R===void 0)return null;return Q=SY(Q,J,X.R),Q===null?null:X.na(Q)}var aY={};function o9(Q,J){return J=Cj(Q,J),Dq[J]}var hY=void 0;function cK(Q){throw new hY(Q)}function dK(Q,J){return J.P&&J.O||cK("makeClassHandle requires ptr and ptrType"),!!J.U!==!!J.T&&cK("Both smartPtrType and smartPtr must be specified"),J.count={value:1},a6(Object.create(Q,{M:{value:J}}))}function a6(Q){if(typeof FinalizationRegistry==="undefined")return a6=(J)=>J,Q;return kj=new FinalizationRegistry((J)=>{RY(J.M)}),a6=(J)=>{var X=J.M;return X.T&&kj.register(J,{M:X},J),J},fK=(J)=>{kj.unregister(J)},a6(Q)}var pK={};function Dj(Q){for(;Q.length;){var J=Q.pop();Q.pop()(J)}}function RE(Q){return this.fromWireType(k[Q>>2])}var h6={},uK={};function Gg(Q,J,X){function H(w){w=X(w),w.length!==Q.length&&cK("Mismatched type converter count");for(var v=0;v<Q.length;++v)yq(Q[v],w[v])}Q.forEach(function(w){uK[w]=J});var W=Array(J.length),S=[],B=0;J.forEach((w,v)=>{mg.hasOwnProperty(w)?W[v]=mg[w]:(S.push(w),h6.hasOwnProperty(w)||(h6[w]=[]),h6[w].push(()=>{W[v]=mg[w],++B,B===S.length&&H(W)}))}),S.length===0&&H(W)}function yj(Q){switch(Q){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+Q)}}function yq(Q,J,X={}){if(!("argPackAdvance"in J))throw new TypeError("registerType registeredInstance requires argPackAdvance");var H=J.name;if(Q||ZA('type "'+H+'" must have a positive integer typeid pointer'),mg.hasOwnProperty(Q)){if(X.ua)return;ZA("Cannot register type '"+H+"' twice")}mg[Q]=J,delete uK[Q],h6.hasOwnProperty(Q)&&(J=h6[Q],delete h6[Q],J.forEach((W)=>W()))}function bj(Q){ZA(Q.M.P.N.name+" instance already deleted")}function Yg(){}function vj(Q,J,X){if(Q[J].S===void 0){var H=Q[J];Q[J]=function(){return Q[J].S.hasOwnProperty(arguments.length)||ZA("Function '"+X+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+Q[J].S+")!"),Q[J].S[arguments.length].apply(this,arguments)},Q[J].S=[],Q[J].S[H.Z]=H}}function e9(Q,J){g.hasOwnProperty(Q)?(ZA("Cannot register public name '"+Q+"' twice"),vj(g,Q,Q),g.hasOwnProperty(void 0)&&ZA("Cannot register multiple overloads of a function with the same number of arguments (undefined)!"),g[Q].S[void 0]=J):g[Q]=J}function A_(Q,J,X,H,W,S,B,w){this.name=Q,this.constructor=J,this.X=X,this.W=H,this.R=W,this.pa=S,this.ba=B,this.na=w,this.ja=[]}function mj(Q,J,X){for(;J!==X;)J.ba||ZA("Expected null or instance of "+X.name+", got an instance of "+J.name),Q=J.ba(Q),J=J.R;return Q}function q_(Q,J){if(J===null)return this.ea&&ZA("null is not a valid "+this.name),0;return J.M||ZA('Cannot pass "'+pj(J)+'" as a '+this.name),J.M.O||ZA("Cannot pass deleted object as a pointer of type "+this.name),mj(J.M.O,J.M.P.N,this.N)}function g_(Q,J){if(J===null){if(this.ea&&ZA("null is not a valid "+this.name),this.da){var X=this.fa();return Q!==null&&Q.push(this.W,X),X}return 0}if(J.M||ZA('Cannot pass "'+pj(J)+'" as a '+this.name),J.M.O||ZA("Cannot pass deleted object as a pointer of type "+this.name),!this.ca&&J.M.P.ca&&ZA("Cannot convert argument of type "+(J.M.U?J.M.U.name:J.M.P.name)+" to parameter type "+this.name),X=mj(J.M.O,J.M.P.N,this.N),this.da)switch(J.M.T===void 0&&ZA("Passing raw pointer to smart pointer is illegal"),this.Ba){case 0:J.M.U===this?X=J.M.T:ZA("Cannot convert argument of type "+(J.M.U?J.M.U.name:J.M.P.name)+" to parameter type "+this.name);break;case 1:X=J.M.T;break;case 2:if(J.M.U===this)X=J.M.T;else{var H=J.clone();X=this.xa(X,mK(function(){H.delete()})),Q!==null&&Q.push(this.W,X)}break;default:ZA("Unsupporting sharing policy")}return X}function E_(Q,J){if(J===null)return this.ea&&ZA("null is not a valid "+this.name),0;return J.M||ZA('Cannot pass "'+pj(J)+'" as a '+this.name),J.M.O||ZA("Cannot pass deleted object as a pointer of type "+this.name),J.M.P.ca&&ZA("Cannot convert argument of type "+J.M.P.name+" to parameter type "+this.name),mj(J.M.O,J.M.P.N,this.N)}function bq(Q,J,X,H){this.name=Q,this.N=J,this.ea=X,this.ca=H,this.da=!1,this.W=this.xa=this.fa=this.ka=this.Ba=this.wa=void 0,J.R!==void 0?this.toWireType=g_:(this.toWireType=H?q_:E_,this.V=null)}function F_(Q,J){g.hasOwnProperty(Q)||cK("Replacing nonexistant public symbol"),g[Q]=J,g[Q].Z=void 0}function K_(Q,J){var X=[];return function(){if(X.length=0,Object.assign(X,arguments),Q.includes("j")){var H=g["dynCall_"+Q];H=X&&X.length?H.apply(null,[J].concat(X)):H.call(null,J)}else H=z.get(J).apply(null,X);return H}}function Gq(Q,J){Q=BA(Q);var X=Q.includes("j")?K_(Q,J):z.get(J);return typeof X!="function"&&ZA("unknown function pointer with signature "+Q+": "+J),X}var zY=void 0;function lK(Q,J){function X(S){W[S]||mg[S]||(uK[S]?uK[S].forEach(X):(H.push(S),W[S]=!0))}var H=[],W={};throw J.forEach(X),new zY(Q+": "+H.map(xY).join([", "]))}function fj(Q,J,X,H,W){var S=J.length;2>S&&ZA("argTypes array size mismatch! Must at least get return value and 'this' types!");var B=J[1]!==null&&X!==null,w=!1;for(X=1;X<J.length;++X)if(J[X]!==null&&J[X].V===void 0){w=!0;break}var v=J[0].name!=="void",y=S-2,l=Array(y),o=[],jA=[];return function(){if(arguments.length!==y&&ZA("function "+Q+" called with "+arguments.length+" arguments, expected "+y+" args!"),jA.length=0,o.length=B?2:1,o[0]=W,B){var LA=J[1].toWireType(jA,this);o[1]=LA}for(var YA=0;YA<y;++YA)l[YA]=J[YA+2].toWireType(jA,arguments[YA]),o.push(l[YA]);if(YA=H.apply(null,o),w)Dj(jA);else for(var iA=B?1:2;iA<J.length;iA++){var Yq=iA===1?LA:l[iA-2];J[iA].V!==null&&J[iA].V(Yq)}return LA=v?J[0].fromWireType(YA):void 0,LA}}function cj(Q,J){for(var X=[],H=0;H<Q;H++)X.push(C[J+4*H>>2]);return X}function dj(Q){4<Q&&--Uq[Q].ga===0&&(Uq[Q]=void 0,Bj.push(Q))}function pj(Q){if(Q===null)return"null";var J=typeof Q;return J==="object"||J==="array"||J==="function"?Q.toString():""+Q}function Z_(Q,J){switch(J){case 2:return function(X){return this.fromWireType(i[X>>2])};case 3:return function(X){return this.fromWireType(p[X>>3])};default:throw new TypeError("Unknown float type: "+Q)}}function j_(Q,J,X){switch(J){case 0:return X?function(H){return x[H]}:function(H){return N[H]};case 1:return X?function(H){return L[H>>1]}:function(H){return P[H>>1]};case 2:return X?function(H){return k[H>>2]}:function(H){return C[H>>2]};default:throw new TypeError("Unknown integer type: "+Q)}}function U_(Q,J){for(var X="",H=0;!(H>=J/2);++H){var W=L[Q+2*H>>1];if(W==0)break;X+=String.fromCharCode(W)}return X}function G_(Q,J,X){if(X===void 0&&(X=2147483647),2>X)return 0;X-=2;var H=J;X=X<2*Q.length?X/2:Q.length;for(var W=0;W<X;++W)L[J>>1]=Q.charCodeAt(W),J+=2;return L[J>>1]=0,J-H}function Y_(Q){return 2*Q.length}function Q_(Q,J){for(var X=0,H="";!(X>=J/4);){var W=k[Q+4*X>>2];if(W==0)break;++X,65536<=W?(W-=65536,H+=String.fromCharCode(55296|W>>10,56320|W&1023)):H+=String.fromCharCode(W)}return H}function O_(Q,J,X){if(X===void 0&&(X=2147483647),4>X)return 0;var H=J;X=H+X-4;for(var W=0;W<Q.length;++W){var S=Q.charCodeAt(W);if(55296<=S&&57343>=S){var B=Q.charCodeAt(++W);S=65536+((S&1023)<<10)|B&1023}if(k[J>>2]=S,J+=4,J+4>X)break}return k[J>>2]=0,J-H}function J_(Q){for(var J=0,X=0;X<Q.length;++X){var H=Q.charCodeAt(X);55296<=H&&57343>=H&&++X,J+=4}return J}var M_={};function BY(Q){var J=M_[Q];return J===void 0?BA(Q):J}var iK=[];function __(Q){var J=iK.length;return iK.push(Q),J}function $_(Q,J){for(var X=Array(Q),H=0;H<Q;++H)X[H]=PY(C[J+4*H>>2],"parameter "+H);return X}var wY=[],X_=[null,[],[]];S6=g.BindingError=vK("BindingError"),g.count_emval_handles=function(){for(var Q=0,J=5;J<Uq.length;++J)Uq[J]!==void 0&&++Q;return Q},g.get_first_emval=function(){for(var Q=5;Q<Uq.length;++Q)if(Uq[Q]!==void 0)return Uq[Q];return null},TY=g.PureVirtualError=vK("PureVirtualError");for(var CY=Array(256),tK=0;256>tK;++tK)CY[tK]=String.fromCharCode(tK);IY=CY,g.getInheritedInstanceCount=function(){return Object.keys(Dq).length},g.getLiveInheritedInstances=function(){var Q=[],J;for(J in Dq)Dq.hasOwnProperty(J)&&Q.push(Dq[J]);return Q},g.flushPendingDeletes=wj,g.setDelayFunction=function(Q){PE=Q,xE.length&&PE&&PE(wj)},hY=g.InternalError=vK("InternalError"),Yg.prototype.isAliasOf=function(Q){if(!(this instanceof Yg&&Q instanceof Yg))return!1;var J=this.M.P.N,X=this.M.O,H=Q.M.P.N;for(Q=Q.M.O;J.R;)X=J.ba(X),J=J.R;for(;H.R;)Q=H.ba(Q),H=H.R;return J===H&&X===Q},Yg.prototype.clone=function(){if(this.M.O||bj(this),this.M.aa)return this.M.count.value+=1,this;var Q=a6,J=Object,X=J.create,H=Object.getPrototypeOf(this),W=this.M;return Q=Q(X.call(J,H,{M:{value:{count:W.count,$:W.$,aa:W.aa,O:W.O,P:W.P,T:W.T,U:W.U}}})),Q.M.count.value+=1,Q.M.$=!1,Q},Yg.prototype.delete=function(){this.M.O||bj(this),this.M.$&&!this.M.aa&&ZA("Object already scheduled for deletion"),fK(this),RY(this.M),this.M.aa||(this.M.T=void 0,this.M.O=void 0)},Yg.prototype.isDeleted=function(){return!this.M.O},Yg.prototype.deleteLater=function(){return this.M.O||bj(this),this.M.$&&!this.M.aa&&ZA("Object already scheduled for deletion"),xE.push(this),xE.length===1&&PE&&PE(wj),this.M.$=!0,this},bq.prototype.qa=function(Q){return this.ka&&(Q=this.ka(Q)),Q},bq.prototype.ha=function(Q){this.W&&this.W(Q)},bq.prototype.argPackAdvance=8,bq.prototype.readValueFromPointer=RE,bq.prototype.deleteObject=function(Q){if(Q!==null)Q.delete()},bq.prototype.fromWireType=function(Q){function J(){return this.da?dK(this.N.X,{P:this.wa,O:X,U:this,T:Q}):dK(this.N.X,{P:this,O:Q})}var X=this.qa(Q);if(!X)return this.ha(Q),null;var H=o9(this.N,X);if(H!==void 0){if(H.M.count.value===0)return H.M.O=X,H.M.T=Q,H.clone();return H=H.clone(),this.ha(Q),H}if(H=this.N.pa(X),H=aY[H],!H)return J.call(this);H=this.ca?H.la:H.pointerType;var W=SY(X,this.N,H.N);return W===null?J.call(this):this.da?dK(H.N.X,{P:H,O:W,U:this,T:Q}):dK(H.N.X,{P:H,O:W})},zY=g.UnboundTypeError=vK("UnboundTypeError");var H_=typeof atob=="function"?atob:function(Q){var J="",X=0;Q=Q.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var H="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(Q.charAt(X++)),W="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(Q.charAt(X++)),S="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(Q.charAt(X++)),B="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(Q.charAt(X++));H=H<<2|W>>4,W=(W&15)<<4|S>>2;var w=(S&3)<<6|B;J+=String.fromCharCode(H),S!==64&&(J+=String.fromCharCode(W)),B!==64&&(J+=String.fromCharCode(w))}while(X<Q.length);return J},L_={l:function(Q,J,X,H){SA("Assertion failed: "+(Q?$(N,Q):"")+", at: "+[J?J?$(N,J):"":"unknown filename",X,H?H?$(N,H):"":"unknown function"])},q:function(Q,J,X){Q=BA(Q),J=PY(J,"wrapper"),X=IE(X);var H=[].slice,W=J.N,S=W.X,B=W.R.X,w=W.R.constructor;Q=zj(Q,function(){W.R.ja.forEach(function(y){if(this[y]===B[y])throw new TY("Pure virtual function "+y+" must be implemented in JavaScript")}.bind(this)),Object.defineProperty(this,"__parent",{value:S}),this.__construct.apply(this,H.call(arguments))}),S.__construct=function(){this===S&&ZA("Pass correct 'this' to __construct");var y=w.implement.apply(void 0,[this].concat(H.call(arguments)));fK(y);var l=y.M;y.notifyOnDestruction(),l.aa=!0,Object.defineProperties(this,{M:{value:l}}),a6(this),y=l.O,y=Cj(W,y),Dq.hasOwnProperty(y)?ZA("Tried to register registered instance: "+y):Dq[y]=this},S.__destruct=function(){this===S&&ZA("Pass correct 'this' to __destruct"),fK(this);var y=this.M.O;y=Cj(W,y),Dq.hasOwnProperty(y)?delete Dq[y]:ZA("Tried to unregister unregistered instance: "+y)},Q.prototype=Object.create(S);for(var v in X)Q.prototype[v]=X[v];return mK(Q)},j:function(Q){var J=pK[Q];delete pK[Q];var{fa:X,W:H,ia:W}=J,S=W.map((B)=>B.ta).concat(W.map((B)=>B.za));Gg([Q],S,(B)=>{var w={};return W.forEach((v,y)=>{var l=B[y],o=v.ra,jA=v.sa,LA=B[y+W.length],YA=v.ya,iA=v.Aa;w[v.oa]={read:(Yq)=>l.fromWireType(o(jA,Yq)),write:(Yq,SE)=>{var mq=[];YA(iA,Yq,LA.toWireType(mq,SE)),Dj(mq)}}}),[{name:J.name,fromWireType:function(v){var y={},l;for(l in w)y[l]=w[l].read(v);return H(v),y},toWireType:function(v,y){for(var l in w)if(!(l in y))throw new TypeError('Missing field: "'+l+'"');var o=X();for(l in w)w[l].write(o,y[l]);return v!==null&&v.push(H,o),o},argPackAdvance:8,readValueFromPointer:RE,V:H}]})},v:function(){},B:function(Q,J,X,H,W){var S=yj(X);J=BA(J),yq(Q,{name:J,fromWireType:function(B){return!!B},toWireType:function(B,w){return w?H:W},argPackAdvance:8,readValueFromPointer:function(B){if(X===1)var w=x;else if(X===2)w=L;else if(X===4)w=k;else throw new TypeError("Unknown boolean type size: "+J);return this.fromWireType(w[B>>S])},V:null})},f:function(Q,J,X,H,W,S,B,w,v,y,l,o,jA){l=BA(l),S=Gq(W,S),w&&(w=Gq(B,w)),y&&(y=Gq(v,y)),jA=Gq(o,jA);var LA=NY(l);e9(LA,function(){lK("Cannot construct "+l+" due to unbound types",[H])}),Gg([Q,J,X],H?[H]:[],function(YA){if(YA=YA[0],H)var iA=YA.N,Yq=iA.X;else Yq=Yg.prototype;YA=zj(LA,function(){if(Object.getPrototypeOf(this)!==SE)throw new S6("Use 'new' to construct "+l);if(mq.Y===void 0)throw new S6(l+" has no accessible constructor");var bY=mq.Y[arguments.length];if(bY===void 0)throw new S6("Tried to invoke ctor of "+l+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(mq.Y).toString()+") parameters instead!");return bY.apply(this,arguments)});var SE=Object.create(Yq,{constructor:{value:YA}});YA.prototype=SE;var mq=new A_(l,YA,SE,jA,iA,S,w,y);iA=new bq(l,mq,!0,!1),Yq=new bq(l+"*",mq,!1,!1);var yY=new bq(l+" const*",mq,!1,!0);return aY[Q]={pointerType:Yq,la:yY},F_(LA,YA),[iA,Yq,yY]})},d:function(Q,J,X,H,W,S,B){var w=cj(X,H);J=BA(J),S=Gq(W,S),Gg([],[Q],function(v){function y(){lK("Cannot call "+l+" due to unbound types",w)}v=v[0];var l=v.name+"."+J;J.startsWith("@@")&&(J=Symbol[J.substring(2)]);var o=v.N.constructor;return o[J]===void 0?(y.Z=X-1,o[J]=y):(vj(o,J,l),o[J].S[X-1]=y),Gg([],w,function(jA){return jA=fj(l,[jA[0],null].concat(jA.slice(1)),null,S,B),o[J].S===void 0?(jA.Z=X-1,o[J]=jA):o[J].S[X-1]=jA,[]}),[]})},p:function(Q,J,X,H,W,S){0<J||SA();var B=cj(J,X);W=Gq(H,W),Gg([],[Q],function(w){w=w[0];var v="constructor "+w.name;if(w.N.Y===void 0&&(w.N.Y=[]),w.N.Y[J-1]!==void 0)throw new S6("Cannot register multiple constructors with identical number of parameters ("+(J-1)+") for class '"+w.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return w.N.Y[J-1]=()=>{lK("Cannot construct "+w.name+" due to unbound types",B)},Gg([],B,function(y){return y.splice(1,0,null),w.N.Y[J-1]=fj(v,y,null,W,S),[]}),[]})},a:function(Q,J,X,H,W,S,B,w){var v=cj(X,H);J=BA(J),S=Gq(W,S),Gg([],[Q],function(y){function l(){lK("Cannot call "+o+" due to unbound types",v)}y=y[0];var o=y.name+"."+J;J.startsWith("@@")&&(J=Symbol[J.substring(2)]),w&&y.N.ja.push(J);var jA=y.N.X,LA=jA[J];return LA===void 0||LA.S===void 0&&LA.className!==y.name&&LA.Z===X-2?(l.Z=X-2,l.className=y.name,jA[J]=l):(vj(jA,J,o),jA[J].S[X-2]=l),Gg([],v,function(YA){return YA=fj(o,YA,y,S,B),jA[J].S===void 0?(YA.Z=X-2,jA[J]=YA):jA[J].S[X-2]=YA,[]}),[]})},A:function(Q,J){J=BA(J),yq(Q,{name:J,fromWireType:function(X){var H=IE(X);return dj(X),H},toWireType:function(X,H){return mK(H)},argPackAdvance:8,readValueFromPointer:RE,V:null})},n:function(Q,J,X){X=yj(X),J=BA(J),yq(Q,{name:J,fromWireType:function(H){return H},toWireType:function(H,W){return W},argPackAdvance:8,readValueFromPointer:Z_(J,X),V:null})},e:function(Q,J,X,H,W){J=BA(J),W===-1&&(W=4294967295),W=yj(X);var S=(w)=>w;if(H===0){var B=32-8*X;S=(w)=>w<<B>>>B}X=J.includes("unsigned")?function(w,v){return v>>>0}:function(w,v){return v},yq(Q,{name:J,fromWireType:S,toWireType:X,argPackAdvance:8,readValueFromPointer:j_(J,W,H!==0),V:null})},b:function(Q,J,X){function H(S){S>>=2;var B=C;return new W(_,B[S+1],B[S])}var W=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][J];X=BA(X),yq(Q,{name:X,fromWireType:H,argPackAdvance:8,readValueFromPointer:H},{ua:!0})},o:function(Q,J){J=BA(J);var X=J==="std::string";yq(Q,{name:J,fromWireType:function(H){var W=C[H>>2],S=H+4;if(X)for(var B=S,w=0;w<=W;++w){var v=S+w;if(w==W||N[v]==0){if(B=B?$(N,B,v-B):"",y===void 0)var y=B;else y+=String.fromCharCode(0),y+=B;B=v+1}}else{y=Array(W);for(w=0;w<W;++w)y[w]=String.fromCharCode(N[S+w]);y=y.join("")}return vq(H),y},toWireType:function(H,W){W instanceof ArrayBuffer&&(W=new Uint8Array(W));var S,B=typeof W=="string";if(B||W instanceof Uint8Array||W instanceof Uint8ClampedArray||W instanceof Int8Array||ZA("Cannot pass non-string to std::string"),X&&B){var w=0;for(S=0;S<W.length;++S){var v=W.charCodeAt(S);127>=v?w++:2047>=v?w+=2:55296<=v&&57343>=v?(w+=4,++S):w+=3}S=w}else S=W.length;if(w=uj(4+S+1),v=w+4,C[w>>2]=S,X&&B){if(B=v,v=S+1,S=N,0<v){v=B+v-1;for(var y=0;y<W.length;++y){var l=W.charCodeAt(y);if(55296<=l&&57343>=l){var o=W.charCodeAt(++y);l=65536+((l&1023)<<10)|o&1023}if(127>=l){if(B>=v)break;S[B++]=l}else{if(2047>=l){if(B+1>=v)break;S[B++]=192|l>>6}else{if(65535>=l){if(B+2>=v)break;S[B++]=224|l>>12}else{if(B+3>=v)break;S[B++]=240|l>>18,S[B++]=128|l>>12&63}S[B++]=128|l>>6&63}S[B++]=128|l&63}}S[B]=0}}else if(B)for(B=0;B<S;++B)y=W.charCodeAt(B),255<y&&(vq(v),ZA("String has UTF-16 code units that do not fit in 8 bits")),N[v+B]=y;else for(B=0;B<S;++B)N[v+B]=W[B];return H!==null&&H.push(vq,w),w},argPackAdvance:8,readValueFromPointer:RE,V:function(H){vq(H)}})},i:function(Q,J,X){if(X=BA(X),J===2)var H=U_,W=G_,S=Y_,B=()=>P,w=1;else J===4&&(H=Q_,W=O_,S=J_,B=()=>C,w=2);yq(Q,{name:X,fromWireType:function(v){for(var y=C[v>>2],l=B(),o,jA=v+4,LA=0;LA<=y;++LA){var YA=v+4+LA*J;if(LA==y||l[YA>>w]==0)jA=H(jA,YA-jA),o===void 0?o=jA:(o+=String.fromCharCode(0),o+=jA),jA=YA+J}return vq(v),o},toWireType:function(v,y){typeof y!="string"&&ZA("Cannot pass non-string to C++ string type "+X);var l=S(y),o=uj(4+l+J);return C[o>>2]=l>>w,W(y,o+4,l+J),v!==null&&v.push(vq,o),o},argPackAdvance:8,readValueFromPointer:RE,V:function(v){vq(v)}})},k:function(Q,J,X,H,W,S){pK[Q]={name:BA(J),fa:Gq(X,H),W:Gq(W,S),ia:[]}},h:function(Q,J,X,H,W,S,B,w,v,y){pK[Q].ia.push({oa:BA(J),ta:X,ra:Gq(H,W),sa:S,za:B,ya:Gq(w,v),Aa:y})},C:function(Q,J){J=BA(J),yq(Q,{va:!0,name:J,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},s:function(Q,J,X,H,W){Q=iK[Q],J=IE(J),X=BY(X);var S=[];return C[H>>2]=mK(S),Q(J,X,S,W)},t:function(Q,J,X,H){Q=iK[Q],J=IE(J),X=BY(X),Q(J,X,null,H)},g:dj,m:function(Q,J){var X=$_(Q,J),H=X[0];J=H.name+"_$"+X.slice(1).map(function(B){return B.name}).join("_")+"$";var W=wY[J];if(W!==void 0)return W;var S=Array(Q-1);return W=__((B,w,v,y)=>{for(var l=0,o=0;o<Q-1;++o)S[o]=X[o+1].readValueFromPointer(y+l),l+=X[o+1].argPackAdvance;B=B[w].apply(B,S);for(o=0;o<Q-1;++o)X[o+1].ma&&X[o+1].ma(S[o]);if(!H.va)return H.toWireType(v,B)}),wY[J]=W},D:function(Q){4<Q&&(Uq[Q].ga+=1)},r:function(Q){var J=IE(Q);Dj(J),dj(Q)},c:function(){SA("")},x:function(Q,J,X){N.copyWithin(Q,J,J+X)},w:function(Q){var J=N.length;if(Q>>>=0,2147483648<Q)return!1;for(var X=1;4>=X;X*=2){var H=J*(1+0.2/X);H=Math.min(H,Q+100663296);var W=Math;H=Math.max(Q,H),W=W.min.call(W,2147483648,H+(65536-H%65536)%65536);A:{try{M.grow(W-_.byteLength+65535>>>16),a();var S=1;break A}catch(B){}S=void 0}if(S)return!0}return!1},z:function(){return 52},u:function(){return 70},y:function(Q,J,X,H){for(var W=0,S=0;S<X;S++){var B=C[J>>2],w=C[J+4>>2];J+=8;for(var v=0;v<w;v++){var y=N[B+v],l=X_[Q];y===0||y===10?((Q===1?j:U)($(l,0)),l.length=0):l.push(y)}W+=w}return C[H>>2]=W,0}};(function(){function Q(W){g.asm=W.exports,M=g.asm.E,a(),z=g.asm.J,c.unshift(g.asm.F),QA--,g.monitorRunDependencies&&g.monitorRunDependencies(QA),QA==0&&(RA!==null&&(clearInterval(RA),RA=null),mA&&(W=mA,mA=null,W()))}function J(W){Q(W.instance)}function X(W){return r9().then(function(S){return WebAssembly.instantiate(S,H)}).then(function(S){return S}).then(W,function(S){U("failed to asynchronously prepare wasm: "+S),SA(S)})}var H={a:L_};if(QA++,g.monitorRunDependencies&&g.monitorRunDependencies(QA),g.instantiateWasm)try{return g.instantiateWasm(H,Q)}catch(W){U("Module.instantiateWasm callback failed with error: "+W),F(W)}return function(){return G||typeof WebAssembly.instantiateStreaming!="function"||Tq(kq)||typeof fetch!="function"?X(J):fetch(kq,{credentials:"same-origin"}).then(function(W){return WebAssembly.instantiateStreaming(W,H).then(J,function(S){return U("wasm streaming compile failed: "+S),U("falling back to ArrayBuffer instantiation"),X(J)})})}().catch(F),{}})(),g.___wasm_call_ctors=function(){return(g.___wasm_call_ctors=g.asm.F).apply(null,arguments)};var kY=g.___getTypeName=function(){return(kY=g.___getTypeName=g.asm.G).apply(null,arguments)};g.__embind_initialize_bindings=function(){return(g.__embind_initialize_bindings=g.asm.H).apply(null,arguments)};var uj=g._malloc=function(){return(uj=g._malloc=g.asm.I).apply(null,arguments)},vq=g._free=function(){return(vq=g._free=g.asm.K).apply(null,arguments)};g.dynCall_jiji=function(){return(g.dynCall_jiji=g.asm.L).apply(null,arguments)};var sK;mA=function Q(){sK||DY(),sK||(mA=Q)};function DY(){function Q(){if(!sK&&(sK=!0,g.calledRun=!0,!O)){if(hj(c),E(g),g.onRuntimeInitialized)g.onRuntimeInitialized();if(g.postRun)for(typeof g.postRun=="function"&&(g.postRun=[g.postRun]);g.postRun.length;){var J=g.postRun.shift();gA.unshift(J)}hj(gA)}}if(!(0<QA)){if(g.preRun)for(typeof g.preRun=="function"&&(g.preRun=[g.preRun]);g.preRun.length;)KA();hj(r),0<QA||(g.setStatus?(g.setStatus("Running..."),setTimeout(function(){setTimeout(function(){g.setStatus("")},1),Q()},1)):Q())}}if(g.preInit)for(typeof g.preInit=="function"&&(g.preInit=[g.preInit]);0<g.preInit.length;)g.preInit.pop()();return DY(),q.ready}})(),C_=w_,UA=function(A){return A[A.Auto=0]="Auto",A[A.FlexStart=1]="FlexStart",A[A.Center=2]="Center",A[A.FlexEnd=3]="FlexEnd",A[A.Stretch=4]="Stretch",A[A.Baseline=5]="Baseline",A[A.SpaceBetween=6]="SpaceBetween",A[A.SpaceAround=7]="SpaceAround",A[A.SpaceEvenly=8]="SpaceEvenly",A}({}),rj=function(A){return A[A.BorderBox=0]="BorderBox",A[A.ContentBox=1]="ContentBox",A}({}),oj=function(A){return A[A.Width=0]="Width",A[A.Height=1]="Height",A}({}),D6=function(A){return A[A.Inherit=0]="Inherit",A[A.LTR=1]="LTR",A[A.RTL=2]="RTL",A}({}),_g=function(A){return A[A.Flex=0]="Flex",A[A.None=1]="None",A[A.Contents=2]="Contents",A}({}),n=function(A){return A[A.Left=0]="Left",A[A.Top=1]="Top",A[A.Right=2]="Right",A[A.Bottom=3]="Bottom",A[A.Start=4]="Start",A[A.End=5]="End",A[A.Horizontal=6]="Horizontal",A[A.Vertical=7]="Vertical",A[A.All=8]="All",A}({}),dg=function(A){return A[A.None=0]="None",A[A.StretchFlexBasis=1]="StretchFlexBasis",A[A.AbsolutePositionWithoutInsetsExcludesPadding=2]="AbsolutePositionWithoutInsetsExcludesPadding",A[A.AbsolutePercentAgainstInnerSize=4]="AbsolutePercentAgainstInnerSize",A[A.All=2147483647]="All",A[A.Classic=2147483646]="Classic",A}({}),IQ=function(A){return A[A.WebFlexBasis=0]="WebFlexBasis",A}({}),Kq=function(A){return A[A.Column=0]="Column",A[A.ColumnReverse=1]="ColumnReverse",A[A.Row=2]="Row",A[A.RowReverse=3]="RowReverse",A}({}),$q=function(A){return A[A.Column=0]="Column",A[A.Row=1]="Row",A[A.All=2]="All",A}({}),cA=function(A){return A[A.FlexStart=0]="FlexStart",A[A.Center=1]="Center",A[A.FlexEnd=2]="FlexEnd",A[A.SpaceBetween=3]="SpaceBetween",A[A.SpaceAround=4]="SpaceAround",A[A.SpaceEvenly=5]="SpaceEvenly",A}({}),pg=function(A){return A[A.Error=0]="Error",A[A.Warn=1]="Warn",A[A.Info=2]="Info",A[A.Debug=3]="Debug",A[A.Verbose=4]="Verbose",A[A.Fatal=5]="Fatal",A}({}),lq=function(A){return A[A.Undefined=0]="Undefined",A[A.Exactly=1]="Exactly",A[A.AtMost=2]="AtMost",A}({}),ej=function(A){return A[A.Default=0]="Default",A[A.Text=1]="Text",A}({}),dq=function(A){return A[A.Visible=0]="Visible",A[A.Hidden=1]="Hidden",A[A.Scroll=2]="Scroll",A}({}),pq=function(A){return A[A.Static=0]="Static",A[A.Relative=1]="Relative",A[A.Absolute=2]="Absolute",A}({}),_q=function(A){return A[A.Undefined=0]="Undefined",A[A.Point=1]="Point",A[A.Percent=2]="Percent",A[A.Auto=3]="Auto",A}({}),uq=function(A){return A[A.NoWrap=0]="NoWrap",A[A.Wrap=1]="Wrap",A[A.WrapReverse=2]="WrapReverse",A}({}),k_={ALIGN_AUTO:UA.Auto,ALIGN_FLEX_START:UA.FlexStart,ALIGN_CENTER:UA.Center,ALIGN_FLEX_END:UA.FlexEnd,ALIGN_STRETCH:UA.Stretch,ALIGN_BASELINE:UA.Baseline,ALIGN_SPACE_BETWEEN:UA.SpaceBetween,ALIGN_SPACE_AROUND:UA.SpaceAround,ALIGN_SPACE_EVENLY:UA.SpaceEvenly,BOX_SIZING_BORDER_BOX:rj.BorderBox,BOX_SIZING_CONTENT_BOX:rj.ContentBox,DIMENSION_WIDTH:oj.Width,DIMENSION_HEIGHT:oj.Height,DIRECTION_INHERIT:D6.Inherit,DIRECTION_LTR:D6.LTR,DIRECTION_RTL:D6.RTL,DISPLAY_FLEX:_g.Flex,DISPLAY_NONE:_g.None,DISPLAY_CONTENTS:_g.Contents,EDGE_LEFT:n.Left,EDGE_TOP:n.Top,EDGE_RIGHT:n.Right,EDGE_BOTTOM:n.Bottom,EDGE_START:n.Start,EDGE_END:n.End,EDGE_HORIZONTAL:n.Horizontal,EDGE_VERTICAL:n.Vertical,EDGE_ALL:n.All,ERRATA_NONE:dg.None,ERRATA_STRETCH_FLEX_BASIS:dg.StretchFlexBasis,ERRATA_ABSOLUTE_POSITION_WITHOUT_INSETS_EXCLUDES_PADDING:dg.AbsolutePositionWithoutInsetsExcludesPadding,ERRATA_ABSOLUTE_PERCENT_AGAINST_INNER_SIZE:dg.AbsolutePercentAgainstInnerSize,ERRATA_ALL:dg.All,ERRATA_CLASSIC:dg.Classic,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:IQ.WebFlexBasis,FLEX_DIRECTION_COLUMN:Kq.Column,FLEX_DIRECTION_COLUMN_REVERSE:Kq.ColumnReverse,FLEX_DIRECTION_ROW:Kq.Row,FLEX_DIRECTION_ROW_REVERSE:Kq.RowReverse,GUTTER_COLUMN:$q.Column,GUTTER_ROW:$q.Row,GUTTER_ALL:$q.All,JUSTIFY_FLEX_START:cA.FlexStart,JUSTIFY_CENTER:cA.Center,JUSTIFY_FLEX_END:cA.FlexEnd,JUSTIFY_SPACE_BETWEEN:cA.SpaceBetween,JUSTIFY_SPACE_AROUND:cA.SpaceAround,JUSTIFY_SPACE_EVENLY:cA.SpaceEvenly,LOG_LEVEL_ERROR:pg.Error,LOG_LEVEL_WARN:pg.Warn,LOG_LEVEL_INFO:pg.Info,LOG_LEVEL_DEBUG:pg.Debug,LOG_LEVEL_VERBOSE:pg.Verbose,LOG_LEVEL_FATAL:pg.Fatal,MEASURE_MODE_UNDEFINED:lq.Undefined,MEASURE_MODE_EXACTLY:lq.Exactly,MEASURE_MODE_AT_MOST:lq.AtMost,NODE_TYPE_DEFAULT:ej.Default,NODE_TYPE_TEXT:ej.Text,OVERFLOW_VISIBLE:dq.Visible,OVERFLOW_HIDDEN:dq.Hidden,OVERFLOW_SCROLL:dq.Scroll,POSITION_TYPE_STATIC:pq.Static,POSITION_TYPE_RELATIVE:pq.Relative,POSITION_TYPE_ABSOLUTE:pq.Absolute,UNIT_UNDEFINED:_q.Undefined,UNIT_POINT:_q.Point,UNIT_PERCENT:_q.Percent,UNIT_AUTO:_q.Auto,WRAP_NO_WRAP:uq.NoWrap,WRAP_WRAP:uq.Wrap,WRAP_WRAP_REVERSE:uq.WrapReverse},D_=k_;function y_(A){function q(F,K,Z){let j=F[K];F[K]=function(){for(var U=arguments.length,G=new Array(U),Y=0;Y<U;Y++)G[Y]=arguments[Y];return Z.call(this,j,...G)}}for(let F of["setPosition","setMargin","setFlexBasis","setWidth","setHeight","setMinWidth","setMinHeight","setMaxWidth","setMaxHeight","setPadding","setGap"]){let K={[_q.Point]:A.Node.prototype[F],[_q.Percent]:A.Node.prototype[`${F}Percent`],[_q.Auto]:A.Node.prototype[`${F}Auto`]};q(A.Node.prototype,F,function(Z){for(var j=arguments.length,U=new Array(j>1?j-1:0),G=1;G<j;G++)U[G-1]=arguments[G];let Y=U.pop(),M,O;if(Y==="auto")M=_q.Auto,O=void 0;else if(typeof Y==="object")M=Y.unit,O=Y.valueOf();else if(M=typeof Y==="string"&&Y.endsWith("%")?_q.Percent:_q.Point,O=parseFloat(Y),Y!==void 0&&!Number.isNaN(Y)&&Number.isNaN(O))throw new Error(`Invalid value ${Y} for ${F}`);if(!K[M])throw new Error(`Failed to execute "${F}": Unsupported unit '${Y}'`);if(O!==void 0)return K[M].call(this,...U,O);else return K[M].call(this,...U)})}function g(F){return A.MeasureCallback.implement({measure:function(){let{width:K,height:Z}=F(...arguments);return{width:K??NaN,height:Z??NaN}}})}q(A.Node.prototype,"setMeasureFunc",function(F,K){if(K)return F.call(this,g(K));else return this.unsetMeasureFunc()});function E(F){return A.DirtiedCallback.implement({dirtied:F})}return q(A.Node.prototype,"setDirtiedFunc",function(F,K){F.call(this,E(K))}),q(A.Config.prototype,"free",function(){A.Config.destroy(this)}),q(A.Node,"create",(F,K)=>{return K?A.Node.createWithConfig(K):A.Node.createDefault()}),q(A.Node.prototype,"free",function(){A.Node.destroy(this)}),q(A.Node.prototype,"freeRecursive",function(){for(let F=0,K=this.getChildCount();F<K;++F)this.getChild(0).freeRecursive();this.free()}),q(A.Node.prototype,"calculateLayout",function(F){let K=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN,Z=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,j=arguments.length>3&&arguments[3]!==void 0?arguments[3]:D6.LTR;return F.call(this,K,Z,j)}),{Config:A.Config,Node:A.Node,...D_}}var b_=y_(await C_()),ZZ=b_,xQ=["single","double","rounded","heavy"];function PQ(A){return typeof A==="string"&&xQ.includes(A)}function jZ(A,q="single"){if(PQ(A))return A;if(A!==void 0&&A!==null)console.warn(`Invalid borderStyle "${A}", falling back to "${q}". Valid values are: ${xQ.join(", ")}`);return q}var hE={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",topT:"\u252C",bottomT:"\u2534",leftT:"\u251C",rightT:"\u2524",cross:"\u253C"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",topT:"\u2566",bottomT:"\u2569",leftT:"\u2560",rightT:"\u2563",cross:"\u256C"},rounded:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",topT:"\u252C",bottomT:"\u2534",leftT:"\u251C",rightT:"\u2524",cross:"\u253C"},heavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",topT:"\u2533",bottomT:"\u253B",leftT:"\u2523",rightT:"\u252B",cross:"\u254B"}};function UZ(A){return A===!0?{top:!0,right:!0,bottom:!0,left:!0}:Array.isArray(A)?{top:A.includes("top"),right:A.includes("right"),bottom:A.includes("bottom"),left:A.includes("left")}:{top:!1,right:!1,bottom:!1,left:!1}}function lg(A){let q=new Uint32Array(11);return q[0]=A.topLeft.codePointAt(0),q[1]=A.topRight.codePointAt(0),q[2]=A.bottomLeft.codePointAt(0),q[3]=A.bottomRight.codePointAt(0),q[4]=A.horizontal.codePointAt(0),q[5]=A.vertical.codePointAt(0),q[6]=A.topT.codePointAt(0),q[7]=A.bottomT.codePointAt(0),q[8]=A.leftT.codePointAt(0),q[9]=A.rightT.codePointAt(0),q[10]=A.cross.codePointAt(0),q}var RQ={single:lg(hE.single),double:lg(hE.double),rounded:lg(hE.rounded),heavy:lg(hE.heavy)},nY={27:"escape",9:"tab",13:"return",127:"backspace",57344:"escape",57345:"return",57346:"tab",57347:"backspace",57348:"insert",57349:"delete",57350:"left",57351:"right",57352:"up",57353:"down",57354:"pageup",57355:"pagedown",57356:"home",57357:"end",57364:"f1",57365:"f2",57366:"f3",57367:"f4",57368:"f5",57369:"f6",57370:"f7",57371:"f8",57372:"f9",57373:"f10",57374:"f11",57375:"f12",57376:"f13",57377:"f14",57378:"f15",57379:"f16",57380:"f17",57381:"f18",57382:"f19",57383:"f20",57384:"f21",57385:"f22",57386:"f23",57387:"f24",57388:"f25",57389:"f26",57390:"f27",57391:"f28",57392:"f29",57393:"f30",57394:"f31",57395:"f32",57396:"f33",57397:"f34",57398:"f35",57400:"kp0",57401:"kp1",57402:"kp2",57403:"kp3",57404:"kp4",57405:"kp5",57406:"kp6",57407:"kp7",57408:"kp8",57409:"kp9",57410:"kpdecimal",57411:"kpdivide",57412:"kpmultiply",57413:"kpminus",57414:"kpplus",57415:"kpenter",57416:"kpequal",57428:"mediaplay",57429:"mediapause",57430:"mediaplaypause",57431:"mediareverse",57432:"mediastop",57433:"mediafastforward",57434:"mediarewind",57435:"medianext",57436:"mediaprev",57437:"mediarecord",57438:"volumedown",57439:"volumeup",57440:"mute",57441:"leftshift",57442:"leftctrl",57443:"leftalt",57444:"leftsuper",57445:"lefthyper",57446:"leftmeta",57447:"rightshift",57448:"rightctrl",57449:"rightalt",57450:"rightsuper",57451:"righthyper",57452:"rightmeta",57453:"iso_level3_shift",57454:"iso_level5_shift"};function SQ(A){return{shift:!!(A&1),alt:!!(A&2),ctrl:!!(A&4),super:!!(A&8),hyper:!!(A&16),meta:!!(A&32),capsLock:!!(A&64),numLock:!!(A&128)}}var m_={A:"up",B:"down",C:"right",D:"left",H:"home",F:"end",P:"f1",Q:"f2",R:"f3",S:"f4"},f_={"1":"home","2":"insert","3":"delete","4":"end","5":"pageup","6":"pagedown","7":"home","8":"end","11":"f1","12":"f2","13":"f3","14":"f4","15":"f5","17":"f6","18":"f7","19":"f8","20":"f9","21":"f10","23":"f11","24":"f12"};function c_(A){let g=/^\x1b\[(\d+);(\d+):(\d+)([A-Z~])$/.exec(A);if(!g)return null;let E=g[1],F=g[2],K=g[3],Z=g[4],j;if(Z==="~")j=f_[E];else{if(E!=="1")return null;j=m_[Z]}if(!j)return null;let U={name:j,ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:A,raw:A,eventType:"press",source:"kitty",super:!1,hyper:!1,capsLock:!1,numLock:!1};if(F){let G=parseInt(F,10);if(!isNaN(G)&&G>1){let Y=SQ(G-1);U.shift=Y.shift,U.ctrl=Y.ctrl,U.meta=Y.alt||Y.meta,U.option=Y.alt,U.super=Y.super,U.hyper=Y.hyper,U.capsLock=Y.capsLock,U.numLock=Y.numLock}}if(K==="1"||!K)U.eventType="press";else if(K==="2")U.eventType="press",U.repeated=!0;else if(K==="3")U.eventType="release";return U}function d_(A){let q=c_(A);if(q)return q;let E=/^\x1b\[([^\x1b]+)u$/.exec(A);if(!E)return null;let K=E[1].split(";");if(K.length<1)return null;let Z={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:A,raw:A,eventType:"press",source:"kitty",super:!1,hyper:!1,capsLock:!1,numLock:!1},j="",U=K[0]?.split(":")||[],G=U[0];if(!G)return null;let Y=parseInt(G,10);if(isNaN(Y))return null;let M,O;if(U[1]){let _=parseInt(U[1],10);if(!isNaN(_)&&_>0&&_<=1114111)M=_}if(U[2]){let _=parseInt(U[2],10);if(!isNaN(_)&&_>0&&_<=1114111)O=_}let $=nY[Y];if($)Z.name=$,Z.code=`[${Y}u`;else if(Y>0&&Y<=1114111){let _=String.fromCodePoint(Y);if(Z.name=_,O)Z.baseCode=O}else return null;if(K[1]){let _=K[1].split(":"),x=_[0],N=_[1];if(x){let L=parseInt(x,10);if(!isNaN(L)&&L>1){let P=SQ(L-1);Z.shift=P.shift,Z.ctrl=P.ctrl,Z.meta=P.alt||P.meta,Z.option=P.alt,Z.super=P.super,Z.hyper=P.hyper,Z.capsLock=P.capsLock,Z.numLock=P.numLock}}if(N==="1"||!N)Z.eventType="press";else if(N==="2")Z.eventType="press",Z.repeated=!0;else if(N==="3")Z.eventType="release";else Z.eventType="press"}if(K[2]){let _=K[2].split(":");for(let x of _){let N=parseInt(x,10);if(!isNaN(N)&&N>0&&N<=1114111)j+=String.fromCodePoint(N)}}if(j===""){if(Z.name.length>0&&!nY[Y])if(Z.shift&&M)j=String.fromCodePoint(M);else if(Z.shift&&Z.name.length===1)j=Z.name.toLocaleUpperCase();else j=Z.name}if(Z.name===" "&&Z.shift&&!Z.ctrl&&!Z.meta)j=" ";if(j)Z.sequence=j;return Z}var p_=/^(?:\x1b)([a-zA-Z0-9])$/,u_=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,aQ={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear",f:"right",b:"left",p:"up",n:"down","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"},l_=[...Object.values(aQ),"backspace"],i_=(A)=>{return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(A)},t_=(A)=>{return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(A)},s_=/^\x1b\[27;(\d+);(\d+)~$/,hQ=(A="",q={})=>{let g;if(v_.isBuffer(A))if(A[0]>127&&A[1]===void 0)A[0]-=128,A="\x1B"+String(A);else A=String(A);else if(A!==void 0&&typeof A!=="string")A=String(A);else if(!A)A="";if(/^\x1b\[<\d+;\d+;\d+[Mm]$/.test(A))return null;if(A.startsWith("\x1B[M")&&A.length>=6)return null;if(/^\x1b\[\d+;\d+;\d+t$/.test(A))return null;if(/^\x1b\[\d+;\d+R$/.test(A))return null;if(/^\x1b\[\?[\d;]+c$/.test(A))return null;if(/^\x1b\[\?[\d;]+\$y$/.test(A))return null;if(A==="\x1B[I"||A==="\x1B[O")return null;if(/^\x1b\][\d;].*(\x1b\\|\x07)$/.test(A))return null;if(A==="\x1B[200~"||A==="\x1B[201~")return null;let E={name:"",ctrl:!1,meta:!1,shift:!1,option:!1,number:!1,sequence:A,raw:A,eventType:"press",source:"raw"};if(E.sequence=E.sequence||A||E.name,q.useKittyKeyboard){let K=d_(A);if(K)return K}let F=s_.exec(A);if(F){let K=parseInt(F[1],10)-1,Z=parseInt(F[2],10);if(E.ctrl=!!(K&4),E.meta=!!(K&2),E.shift=!!(K&1),E.option=!!(K&2),E.super=!!(K&8),E.hyper=!!(K&16),Z===13)E.name="return";else if(Z===27)E.name="escape";else if(Z===9)E.name="tab";else if(Z===32)E.name="space";else if(Z===127||Z===8)E.name="backspace";else E.name=String.fromCharCode(Z);return E}if(A==="\r"||A==="\x1B\r")E.name="return",E.meta=A.length===2;else if(A===`
|
|
5
5
|
`||A===`\x1B
|
|
6
|
-
`)E.name="linefeed",E.meta=A.length===2;else if(A==="\t")E.name="tab";else if(A==="\b"||A==="\x1B\b"||A==="\x7F"||A==="\x1B\x7F")E.name="backspace",E.meta=A.charAt(0)==="\x1B";else if(A==="\x1B"||A==="\x1B\x1B")E.name="escape",E.meta=A.length===2;else if(A===" "||A==="\x1B ")E.name="space",E.meta=A.length===2;else if(A==="\x00")E.name="space",E.ctrl=!0;else if(A.length===1&&A<="\x1A")E.name=String.fromCharCode(A.charCodeAt(0)+97-1),E.ctrl=!0;else if(A.length===1&&A>="0"&&A<="9")E.name=A,E.number=!0;else if(A.length===1&&A>="a"&&A<="z")E.name=A;else if(A.length===1&&A>="A"&&A<="Z")E.name=A.toLowerCase(),E.shift=!0;else if(A.length===1)E.name=A;else if(g=G_.exec(A)){E.meta=!0;let K=g[1],Z=/^[A-Z]$/.test(K);if(K==="F")E.name="right";else if(K==="B")E.name="left";else if(Z)E.shift=!0,E.name=K;else E.name=K}else if(A.length===2&&A[0]==="\x1B"&&A[1]<="\x1A")E.meta=!0,E.ctrl=!0,E.name=String.fromCharCode(A.charCodeAt(1)+97-1);else if(g=Y_.exec(A)){let K=[...A];if(K[0]==="\x1B"&&K[1]==="\x1B")E.option=!0,E.meta=!0;let Z=[g[1],g[2],g[4],g[6]].filter(Boolean).join(""),j=parseInt(g[3]||g[5]||"1",10)-1;E.ctrl=!!(j&4),E.meta=!!(j&2),E.shift=!!(j&1),E.option=!!(j&2),E.super=!!(j&8),E.hyper=!!(j&16),E.code=Z;let U=uY[Z];if(U)E.name=U,E.shift=O_(Z)||E.shift,E.ctrl=J_(Z)||E.ctrl;else E.name="",E.code=void 0}else if(A==="\x1B[3~")E.name="delete",E.meta=!1,E.code="[3~";return E};class LE{name;ctrl;meta;shift;option;sequence;number;raw;eventType;source;code;super;hyper;capsLock;numLock;baseCode;repeated;_defaultPrevented=!1;_propagationStopped=!1;constructor(A){this.name=A.name,this.ctrl=A.ctrl,this.meta=A.meta,this.shift=A.shift,this.option=A.option,this.sequence=A.sequence,this.number=A.number,this.raw=A.raw,this.eventType=A.eventType,this.source=A.source,this.code=A.code,this.super=A.super,this.hyper=A.hyper,this.capsLock=A.capsLock,this.numLock=A.numLock,this.baseCode=A.baseCode,this.repeated=A.repeated}get defaultPrevented(){return this._defaultPrevented}get propagationStopped(){return this._propagationStopped}preventDefault(){this._defaultPrevented=!0}stopPropagation(){this._propagationStopped=!0}}class uj{text;_defaultPrevented=!1;_propagationStopped=!1;constructor(A){this.text=A}get defaultPrevented(){return this._defaultPrevented}get propagationStopped(){return this._propagationStopped}preventDefault(){this._defaultPrevented=!0}stopPropagation(){this._propagationStopped=!0}}class lj extends __{useKittyKeyboard;constructor(A=!1){super();this.useKittyKeyboard=A}processInput(A){let q=lY(A,{useKittyKeyboard:this.useKittyKeyboard});if(!q)return!1;try{switch(q.eventType){case"press":this.emit("keypress",new LE(q));break;case"release":this.emit("keyrelease",new LE(q));break;default:this.emit("keypress",new LE(q));break}}catch(g){return console.error("[KeyHandler] Error processing input:",g),!0}return!0}processPaste(A){try{let q=Bun.stripANSI(A);this.emit("paste",new uj(q))}catch(q){console.error("[KeyHandler] Error processing paste:",q)}}}class ij extends lj{renderableHandlers=new Map;constructor(A=!1){super(A)}emit(A,...q){return this.emitWithPriority(A,...q)}emitWithPriority(A,...q){let g=!1,E=this.listeners(A);if(E.length>0){g=!0;for(let j of E){try{j(...q)}catch(U){console.error(`[KeyHandler] Error in global ${A} handler:`,U)}if(A==="keypress"||A==="keyrelease"||A==="paste"){if(q[0].propagationStopped)return g}}}let F=this.renderableHandlers.get(A),K=F&&F.size>0?[...F]:[],Z=!1;if(F&&F.size>0){if(Z=!0,A==="keypress"||A==="keyrelease"||A==="paste"){let j=q[0];if(j.defaultPrevented)return g||Z;if(j.propagationStopped)return g||Z}for(let j of K){try{j(...q)}catch(U){console.error(`[KeyHandler] Error in renderable ${A} handler:`,U)}if(A==="keypress"||A==="keyrelease"||A==="paste"){if(q[0].propagationStopped)return g||Z}}}return g||Z}onInternal(A,q){if(!this.renderableHandlers.has(A))this.renderableHandlers.set(A,new Set);this.renderableHandlers.get(A).add(q)}offInternal(A,q){let g=this.renderableHandlers.get(A);if(g)g.delete(q)}}class QA{buffer;constructor(A){this.buffer=A}static fromArray(A){return new QA(A)}static fromValues(A,q,g,E=1){return new QA(new Float32Array([A,q,g,E]))}static fromInts(A,q,g,E=255){return new QA(new Float32Array([A/255,q/255,g/255,E/255]))}static fromHex(A){return pK(A)}toInts(){return[Math.round(this.r*255),Math.round(this.g*255),Math.round(this.b*255),Math.round(this.a*255)]}get r(){return this.buffer[0]}set r(A){this.buffer[0]=A}get g(){return this.buffer[1]}set g(A){this.buffer[1]=A}get b(){return this.buffer[2]}set b(A){this.buffer[2]=A}get a(){return this.buffer[3]}set a(A){this.buffer[3]=A}map(A){return[A(this.r),A(this.g),A(this.b),A(this.a)]}toString(){return`rgba(${this.r.toFixed(2)}, ${this.g.toFixed(2)}, ${this.b.toFixed(2)}, ${this.a.toFixed(2)})`}equals(A){if(!A)return!1;return this.r===A.r&&this.g===A.g&&this.b===A.b&&this.a===A.a}}function pK(A){if(A=A.replace(/^#/,""),A.length===3)A=A[0]+A[0]+A[1]+A[1]+A[2]+A[2];else if(A.length===4)A=A[0]+A[0]+A[1]+A[1]+A[2]+A[2]+A[3]+A[3];if(!/^[0-9A-Fa-f]{6}$/.test(A)&&!/^[0-9A-Fa-f]{8}$/.test(A))return console.warn(`Invalid hex color: ${A}, defaulting to magenta`),QA.fromValues(1,0,1,1);let q=parseInt(A.substring(0,2),16)/255,g=parseInt(A.substring(2,4),16)/255,E=parseInt(A.substring(4,6),16)/255,F=A.length===8?parseInt(A.substring(6,8),16)/255:1;return QA.fromValues(q,g,E,F)}var JY={black:"#000000",white:"#FFFFFF",red:"#FF0000",green:"#008000",blue:"#0000FF",yellow:"#FFFF00",cyan:"#00FFFF",magenta:"#FF00FF",silver:"#C0C0C0",gray:"#808080",grey:"#808080",maroon:"#800000",olive:"#808000",lime:"#00FF00",aqua:"#00FFFF",teal:"#008080",navy:"#000080",fuchsia:"#FF00FF",purple:"#800080",orange:"#FFA500",brightblack:"#666666",brightred:"#FF6666",brightgreen:"#66FF66",brightblue:"#6666FF",brightyellow:"#FFFF66",brightcyan:"#66FFFF",brightmagenta:"#FF66FF",brightwhite:"#FFFFFF"};function d(A){if(typeof A==="string"){let q=A.toLowerCase();if(q==="transparent")return QA.fromValues(0,0,0,0);if(JY[q])return pK(JY[q]);return pK(A)}return A}var Nq={NONE:0,BOLD:1,DIM:2,ITALIC:4,UNDERLINE:8,BLINK:16,INVERSE:32,HIDDEN:64,STRIKETHROUGH:128};var iY;((A)=>{A[A.topLeft=0]="topLeft",A[A.topRight=1]="topRight",A[A.bottomLeft=2]="bottomLeft",A[A.bottomRight=3]="bottomRight"})(iY||={});function WE({bold:A=!1,italic:q=!1,underline:g=!1,dim:E=!1,blink:F=!1,inverse:K=!1,hidden:Z=!1,strikethrough:j=!1}={}){let U=Nq.NONE;if(A)U|=Nq.BOLD;if(q)U|=Nq.ITALIC;if(g)U|=Nq.UNDERLINE;if(E)U|=Nq.DIM;if(F)U|=Nq.BLINK;if(K)U|=Nq.INVERSE;if(Z)U|=Nq.HIDDEN;if(j)U|=Nq.STRIKETHROUGH;return U}var $_=255,X_=8,H_=16777215;function tY(A,q){let g=A&$_,E=(q&H_)<<X_;return g|E}var sY=Symbol.for("@opentui/core/StyledText");function nY(A){return A&&A[sY]}class IE{[sY]=!0;chunks;constructor(A){this.chunks=A}}function sK(A){return new IE([{__isChunk:!0,text:A}])}function L_(A,q){if(typeof A==="object"&&"__isChunk"in A){let g=A,E=q.fg?d(q.fg):g.fg,F=q.bg?d(q.bg):g.bg,K=WE(q),Z=g.attributes?g.attributes|K:K;return{__isChunk:!0,text:g.text,fg:E,bg:F,attributes:Z,link:g.link}}else{let g=String(A),E=q.fg?d(q.fg):void 0,F=q.bg?d(q.bg):void 0,K=WE(q);return{__isChunk:!0,text:g,fg:E,bg:F,attributes:K}}}var rY=(A)=>(q)=>L_(q,{fg:A});class tj{tick(A){return 1}reset(){}}var dq="\x1B",MY="\x1B[200~",DK="\x1B[201~";function W_(A){if(!A.startsWith(dq))return"not-escape";if(A.length===1)return"incomplete";let q=A.slice(1);if(q.startsWith("[")){if(q.startsWith("[M"))return A.length>=6?"complete":"incomplete";return N_(A)}if(q.startsWith("]"))return x_(A);if(q.startsWith("P"))return T_(A);if(q.startsWith("_"))return I_(A);if(q.startsWith("O"))return q.length>=2?"complete":"incomplete";if(q.length===1)return"complete";return"complete"}function N_(A){if(!A.startsWith(dq+"["))return"complete";if(A.length<3)return"incomplete";let q=A.slice(2),g=q[q.length-1],E=g.charCodeAt(0);if(E>=64&&E<=126){if(q.startsWith("<")){if(/^<\d+;\d+;\d+[Mm]$/.test(q))return"complete";if(g==="M"||g==="m"){let K=q.slice(1,-1).split(";");if(K.length===3&&K.every((Z)=>/^\d+$/.test(Z)))return"complete"}return"incomplete"}return"complete"}return"incomplete"}function x_(A){if(!A.startsWith(dq+"]"))return"complete";if(A.endsWith(dq+"\\")||A.endsWith("\x07"))return"complete";return"incomplete"}function T_(A){if(!A.startsWith(dq+"P"))return"complete";if(A.endsWith(dq+"\\"))return"complete";return"incomplete"}function I_(A){if(!A.startsWith(dq+"_"))return"complete";if(A.endsWith(dq+"\\"))return"complete";return"incomplete"}function _Y(A){let q=[],g=0;while(g<A.length){let E=A.slice(g);if(E.startsWith(dq)){let F=1;while(F<=E.length){let K=E.slice(0,F),Z=W_(K);if(Z==="complete"){q.push(K),g+=F;break}else if(Z==="incomplete")F++;else{q.push(K),g+=F;break}}if(F>E.length)return{sequences:q,remainder:E}}else q.push(E[0]),g++}return{sequences:q,remainder:""}}class sj extends V_{buffer="";timeout=null;timeoutMs;pasteMode=!1;pasteBuffer="";constructor(A={}){super();this.timeoutMs=A.timeout??10}process(A){if(this.timeout)clearTimeout(this.timeout),this.timeout=null;let q;if(Buffer.isBuffer(A))if(A.length===1&&A[0]>127){let F=A[0]-128;q="\x1B"+String.fromCharCode(F)}else q=A.toString();else q=A;if(q.length===0&&this.buffer.length===0){this.emit("data","");return}if(this.buffer+=q,this.pasteMode){this.pasteBuffer+=this.buffer,this.buffer="";let F=this.pasteBuffer.indexOf(DK);if(F!==-1){let K=this.pasteBuffer.slice(0,F),Z=this.pasteBuffer.slice(F+DK.length);if(this.pasteMode=!1,this.pasteBuffer="",this.emit("paste",K),Z.length>0)this.process(Z)}return}let g=this.buffer.indexOf(MY);if(g!==-1){if(g>0){let K=this.buffer.slice(0,g),Z=_Y(K);for(let j of Z.sequences)this.emit("data",j)}this.buffer=this.buffer.slice(g+MY.length),this.pasteMode=!0,this.pasteBuffer=this.buffer,this.buffer="";let F=this.pasteBuffer.indexOf(DK);if(F!==-1){let K=this.pasteBuffer.slice(0,F),Z=this.pasteBuffer.slice(F+DK.length);if(this.pasteMode=!1,this.pasteBuffer="",this.emit("paste",K),Z.length>0)this.process(Z)}return}let E=_Y(this.buffer);this.buffer=E.remainder;for(let F of E.sequences)this.emit("data",F);if(this.buffer.length>0)this.timeout=setTimeout(()=>{let F=this.flush();for(let K of F)this.emit("data",K)},this.timeoutMs)}flush(){if(this.timeout)clearTimeout(this.timeout),this.timeout=null;if(this.buffer.length===0)return[];let A=[this.buffer];return this.buffer="",A}clear(){if(this.timeout)clearTimeout(this.timeout),this.timeout=null;this.buffer="",this.pasteMode=!1,this.pasteBuffer=""}getBuffer(){return this.buffer}destroy(){this.clear()}}function kj(A){if(A==null)return jA.Auto;switch(A.toLowerCase()){case"auto":return jA.Auto;case"flex-start":return jA.FlexStart;case"center":return jA.Center;case"flex-end":return jA.FlexEnd;case"stretch":return jA.Stretch;case"baseline":return jA.Baseline;case"space-between":return jA.SpaceBetween;case"space-around":return jA.SpaceAround;case"space-evenly":return jA.SpaceEvenly;default:return jA.Auto}}function Dj(A){if(A==null)return jA.Stretch;switch(A.toLowerCase()){case"auto":return jA.Auto;case"flex-start":return jA.FlexStart;case"center":return jA.Center;case"flex-end":return jA.FlexEnd;case"stretch":return jA.Stretch;case"baseline":return jA.Baseline;case"space-between":return jA.SpaceBetween;case"space-around":return jA.SpaceAround;case"space-evenly":return jA.SpaceEvenly;default:return jA.Stretch}}function yj(A){if(A==null)return qq.Column;switch(A.toLowerCase()){case"column":return qq.Column;case"column-reverse":return qq.ColumnReverse;case"row":return qq.Row;case"row-reverse":return qq.RowReverse;default:return qq.Column}}function bj(A){if(A==null)return mA.FlexStart;switch(A.toLowerCase()){case"flex-start":return mA.FlexStart;case"center":return mA.Center;case"flex-end":return mA.FlexEnd;case"space-between":return mA.SpaceBetween;case"space-around":return mA.SpaceAround;case"space-evenly":return mA.SpaceEvenly;default:return mA.FlexStart}}function vj(A){if(A==null)return vq.Visible;switch(A.toLowerCase()){case"visible":return vq.Visible;case"hidden":return vq.Hidden;case"scroll":return vq.Scroll;default:return vq.Visible}}function mj(A){if(A==null)return mq.Relative;switch(A.toLowerCase()){case"static":return mq.Static;case"relative":return mq.Relative;case"absolute":return mq.Absolute;default:return mq.Static}}function fj(A){if(A==null)return fq.NoWrap;switch(A.toLowerCase()){case"no-wrap":return fq.NoWrap;case"wrap":return fq.Wrap;case"wrap-reverse":return fq.WrapReverse;default:return fq.NoWrap}}class NE{mouseButtonsPressed=new Set;static SCROLL_DIRECTIONS={0:"up",1:"down",2:"left",3:"right"};reset(){this.mouseButtonsPressed.clear()}parseMouseEvent(A){let q=A.toString(),g=q.match(/\x1b\[<(\d+);(\d+);(\d+)([Mm])/);if(g){let[,E,F,K,Z]=g,j=parseInt(E),U=j&3,O=(j&64)!==0,Y=!O?void 0:NE.SCROLL_DIRECTIONS[U],M=(j&32)!==0,J={shift:(j&4)!==0,alt:(j&8)!==0,ctrl:(j&16)!==0},$,_;if(O&&Z==="M")$="scroll",_={direction:Y,delta:1};else if(M){let T=this.mouseButtonsPressed.size>0;if(U===3)$="move";else if(T)$="drag";else $="move"}else if($=Z==="M"?"down":"up",$==="down"&&U!==3)this.mouseButtonsPressed.add(U);else if($==="up")this.mouseButtonsPressed.clear();return{type:$,button:U===3?0:U,x:parseInt(F)-1,y:parseInt(K)-1,modifiers:J,scroll:_}}if(q.startsWith("\x1B[M")&&q.length>=6){let E=q.charCodeAt(3)-32,F=q.charCodeAt(4)-33,K=q.charCodeAt(5)-33,Z=E&3,j=(E&64)!==0,U=!j?void 0:NE.SCROLL_DIRECTIONS[Z],O={shift:(E&4)!==0,alt:(E&8)!==0,ctrl:(E&16)!==0},Y,M,J;if(j)Y="scroll",M=0,J={direction:U,delta:1};else Y=Z===3?"up":"down",M=Z===3?0:Z;return{type:Y,button:M,x:F,y:K,modifiers:O,scroll:J}}return null}}class oY{renderable;relativeX;relativeY;constructor(A,q,g){this.renderable=A,this.relativeX=q-this.renderable.x,this.relativeY=g-this.renderable.y}get x(){return this.renderable.x+this.relativeX}get y(){return this.renderable.y+this.relativeY}}class nj{_anchor;_focus;_selectedRenderables=[];_touchedRenderables=[];_isActive=!0;_isSelecting=!0;_isStart=!1;constructor(A,q,g){this._anchor=new oY(A,q.x,q.y),this._focus={...g}}get isStart(){return this._isStart}set isStart(A){this._isStart=A}get anchor(){return{x:this._anchor.x,y:this._anchor.y}}get focus(){return{...this._focus}}set focus(A){this._focus={...A}}get isActive(){return this._isActive}set isActive(A){this._isActive=A}get isSelecting(){return this._isSelecting}set isSelecting(A){this._isSelecting=A}get bounds(){let A=Math.min(this._anchor.x,this._focus.x),q=Math.max(this._anchor.x,this._focus.x),g=Math.min(this._anchor.y,this._focus.y),E=Math.max(this._anchor.y,this._focus.y),F=q-A+1,K=E-g+1;return{x:A,y:g,width:F,height:K}}updateSelectedRenderables(A){this._selectedRenderables=A}get selectedRenderables(){return this._selectedRenderables}updateTouchedRenderables(A){this._touchedRenderables=A}get touchedRenderables(){return this._touchedRenderables}getSelectedText(){return this._selectedRenderables.sort((q,g)=>{let E=q.y,F=g.y;if(E!==F)return E-F;return q.x-g.x}).filter((q)=>!q.isDestroyed).map((q)=>q.getSelectedText()).filter((q)=>q).join(`
|
|
7
|
-
`)}}function rj(A,q,g){if(!A?.isActive)return null;return{anchorX:A.anchor.x-q,anchorY:A.anchor.y-g,focusX:A.focus.x-q,focusY:A.focus.y-g,isActive:!0}}var oj=Symbol.for("@opentui/core/singleton");function dg(A,q){let g=globalThis[oj]??={};if(!(A in g))g[A]=q();return g[A]}function a_(A){let q=globalThis[oj];if(q&&A in q)delete q[A]}function P_(A){let q=globalThis[oj];return q&&A in q}var vg=dg("env-registry",()=>({}));function WA(A){let q=vg[A.name];if(q){if(q.description!==A.description||q.type!==A.type||q.default!==A.default)throw Error(`Environment variable "${A.name}" is already registered with different configuration. Existing: ${JSON.stringify(q)}, New: ${JSON.stringify(A)}`);return}vg[A.name]=A}function R_(A){let q=A.toLowerCase();return["true","1","on","yes"].includes(q)}function S_(A){let q=process.env[A.name];if(q===void 0&&A.default!==void 0)return A.default;if(q===void 0)throw Error(`Required environment variable ${A.name} is not set. ${A.description}`);switch(A.type){case"boolean":return typeof q==="boolean"?q:R_(q);case"number":let g=Number(q);if(isNaN(g))throw Error(`Environment variable ${A.name} must be a valid number, got: ${q}`);return g;case"string":default:return q}}class eY{parsedValues=new Map;get(A){if(this.parsedValues.has(A))return this.parsedValues.get(A);if(!(A in vg))throw Error(`Environment variable ${A} is not registered.`);try{let q=S_(vg[A]);return this.parsedValues.set(A,q),q}catch(q){throw Error(`Failed to parse env var ${A}: ${q instanceof Error?q.message:String(q)}`)}}has(A){return A in vg}clearCache(){this.parsedValues.clear()}}var yK=dg("env-store",()=>new eY);var XA=new Proxy({},{get(A,q){if(typeof q!=="string")return;return yK.get(q)},has(A,q){return yK.has(q)},ownKeys(){return Object.keys(vg)},getOwnPropertyDescriptor(A,q){if(yK.has(q))return{enumerable:!0,configurable:!0,get:()=>yK.get(q)};return}});WA({name:"OTUI_TS_STYLE_WARN",default:!1,description:"Enable warnings for missing syntax styles"});var T6=new Map;class AQ{scopeId;constructor(A){if(this.scopeId=A,!T6.has(this.scopeId))T6.set(this.scopeId,new Map)}debounce(A,q,g){let E=T6.get(this.scopeId);return new Promise((F,K)=>{if(E.has(A))clearTimeout(E.get(A));let Z=setTimeout(()=>{try{F(g())}catch(j){K(j)}E.delete(A)},q);E.set(A,Z)})}clearDebounce(A){let q=T6.get(this.scopeId);if(q&&q.has(A))clearTimeout(q.get(A)),q.delete(A)}clear(){let A=T6.get(this.scopeId);if(A)A.forEach((q)=>clearTimeout(q)),A.clear()}}function z_(A){return new AQ(A)}function B_(A){let q=T6.get(A);if(q)q.forEach((g)=>clearTimeout(g)),q.clear()}class qQ{processor;queue=[];processing=!1;autoProcess=!0;constructor(A,q=!0){this.processor=A,this.autoProcess=q}enqueue(A){if(this.queue.push(A),!this.processing&&this.autoProcess)this.processQueue()}processQueue(){if(this.queue.length===0)return;this.processing=!0,queueMicrotask(async()=>{if(this.queue.length===0){this.processing=!1;return}let A=this.queue.shift();try{await this.processor(A)}catch(q){console.error("Error processing queue item:",q)}if(this.queue.length>0)this.processQueue();else this.processing=!1})}clear(){this.queue=[]}isProcessing(){return this.processing}size(){return this.queue.length}}var Pj;function w_(){if(!Pj)Pj=[{filetype:"javascript",queries:{highlights:[jq(Uq(Gq(import.meta.url)),qY)]},wasm:jq(Uq(Gq(import.meta.url)),gY)},{filetype:"typescript",queries:{highlights:[jq(Uq(Gq(import.meta.url)),EY)]},wasm:jq(Uq(Gq(import.meta.url)),FY)},{filetype:"markdown",queries:{highlights:[jq(Uq(Gq(import.meta.url)),KY)],injections:[jq(Uq(Gq(import.meta.url)),jY)]},wasm:jq(Uq(Gq(import.meta.url)),ZY),injectionMapping:{nodeTypes:{inline:"markdown_inline",pipe_table_cell:"markdown_inline"},infoStringMap:{javascript:"javascript",js:"javascript",typescript:"typescript",ts:"typescript",markdown:"markdown",md:"markdown"}}},{filetype:"markdown_inline",queries:{highlights:[jq(Uq(Gq(import.meta.url)),UY)]},wasm:jq(Uq(Gq(import.meta.url)),GY)},{filetype:"zig",queries:{highlights:[jq(Uq(Gq(import.meta.url)),YY)]},wasm:jq(Uq(Gq(import.meta.url)),QY)}];return Pj}function gQ(A){return A.includes("$bunfs")||/^B:[\\/]~BUN/i.test(A)}function v_(){return process.platform==="win32"?"B:\\~BUN\\root":"/$bunfs/root"}function m_(A){return b_(v_(),y_(A))}WA({name:"OTUI_TREE_SITTER_WORKER_PATH",description:"Path to the TreeSitter worker",type:"string",default:""});var f_=w_();var c_=(A)=>A.startsWith("http://")||A.startsWith("https://");class ej extends h_{initialized=!1;worker;buffers=new Map;initializePromise;initializeResolvers;messageCallbacks=new Map;messageIdCounter=0;editQueues=new Map;debouncer;options;constructor(A){super();this.options=A,this.debouncer=z_("tree-sitter-client"),this.startWorker()}emitError(A,q){if(this.listenerCount("error")>0)this.emit("error",A,q)}emitWarning(A,q){if(this.listenerCount("warning")>0)this.emit("warning",A,q)}startWorker(){if(this.worker)return;let A;if(XA.OTUI_TREE_SITTER_WORKER_PATH)A=XA.OTUI_TREE_SITTER_WORKER_PATH;else if(typeof OTUI_TREE_SITTER_WORKER_PATH<"u")A=OTUI_TREE_SITTER_WORKER_PATH;else if(this.options.workerPath)A=this.options.workerPath;else if(A=new URL("./parser.worker.js",import.meta.url).href,!D_($Y(import.meta.dirname,"parser.worker.js")))A=new URL("./parser.worker.ts",import.meta.url).href;this.worker=new Worker(A),this.worker.onmessage=this.handleWorkerMessage.bind(this),this.worker.onerror=(q)=>{if(console.error("TreeSitter worker error:",q.message),this.initializeResolvers)clearTimeout(this.initializeResolvers.timeoutId),this.initializeResolvers.reject(Error(`Worker error: ${q.message}`)),this.initializeResolvers=void 0;this.emitError(`Worker error: ${q.message}`)}}stopWorker(){if(!this.worker)return;this.worker.terminate(),this.worker=void 0}handleReset(){return this.buffers.clear(),this.stopWorker(),this.startWorker(),this.initializePromise=void 0,this.initializeResolvers=void 0,this.initialize()}async initialize(){if(this.initializePromise)return this.initializePromise;return this.initializePromise=new Promise((A,q)=>{let g=this.options.initTimeout??1e4,E=setTimeout(()=>{let F=Error("Worker initialization timed out");console.error("TreeSitter client:",F.message),this.initializeResolvers=void 0,q(F)},g);this.initializeResolvers={resolve:A,reject:q,timeoutId:E},this.worker?.postMessage({type:"INIT",dataPath:this.options.dataPath})}),await this.initializePromise,await this.registerDefaultParsers(),this.initializePromise}async registerDefaultParsers(){for(let A of f_)this.addFiletypeParser(A)}resolvePath(A){if(c_(A))return A;if(gQ(A))return m_(k_(A).base);if(!C_(A))return $Y(A);return A}addFiletypeParser(A){let q={...A,wasm:this.resolvePath(A.wasm),queries:{highlights:A.queries.highlights.map((g)=>this.resolvePath(g)),injections:A.queries.injections?.map((g)=>this.resolvePath(g))}};this.worker?.postMessage({type:"ADD_FILETYPE_PARSER",filetypeParser:q})}async getPerformance(){let A=`performance_${this.messageIdCounter++}`;return new Promise((q)=>{this.messageCallbacks.set(A,q),this.worker?.postMessage({type:"GET_PERFORMANCE",messageId:A})})}async highlightOnce(A,q){if(!this.initialized)try{await this.initialize()}catch(E){return{error:"Could not highlight because of initialization error"}}let g=`oneshot_${this.messageIdCounter++}`;return new Promise((E)=>{this.messageCallbacks.set(g,E),this.worker?.postMessage({type:"ONESHOT_HIGHLIGHT",content:A,filetype:q,messageId:g})})}handleWorkerMessage(A){let{type:q,bufferId:g,error:E,highlights:F,warning:K,messageId:Z,hasParser:j,performance:U,version:O}=A.data;if(q==="HIGHLIGHT_RESPONSE"){let Y=this.buffers.get(g);if(!Y||!Y.hasParser)return;if(Y.version!==O){this.resetBuffer(g,Y.version,Y.content);return}this.emit("highlights:response",g,O,F)}if(q==="INIT_RESPONSE"){if(this.initializeResolvers){if(clearTimeout(this.initializeResolvers.timeoutId),E)console.error("TreeSitter client initialization failed:",E),this.initializeResolvers.reject(Error(E));else this.initialized=!0,this.initializeResolvers.resolve();this.initializeResolvers=void 0;return}}if(q==="PARSER_INIT_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({hasParser:j,warning:K,error:E});return}if(q==="PRELOAD_PARSER_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({hasParser:j});return}if(q==="BUFFER_DISPOSED"){let Y=this.messageCallbacks.get(`dispose_${g}`);if(Y)this.messageCallbacks.delete(`dispose_${g}`),Y(!0);this.emit("buffer:disposed",g);return}if(q==="PERFORMANCE_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y(U);return}if(q==="ONESHOT_HIGHLIGHT_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({highlights:F,warning:K,error:E});return}if(q==="UPDATE_DATA_PATH_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({error:E});return}if(q==="CLEAR_CACHE_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({error:E});return}if(K){this.emitWarning(K,g);return}if(E){this.emitError(E,g);return}if(q==="WORKER_LOG"){let{logType:Y,data:M}=A.data,J=M.join(" ");if(this.emit("worker:log",Y,J),Y==="log")console.log("TSWorker:",...M);else if(Y==="error")console.error("TSWorker:",...M);else if(Y==="warn")console.warn("TSWorker:",...M);return}}async preloadParser(A){let q=`has_parser_${this.messageIdCounter++}`;return(await new Promise((E)=>{this.messageCallbacks.set(q,E),this.worker?.postMessage({type:"PRELOAD_PARSER",filetype:A,messageId:q})})).hasParser}async createBuffer(A,q,g,E=1,F=!0){if(!this.initialized){if(!F)return this.emitError("Could not create buffer because client is not initialized"),!1;try{await this.initialize()}catch(U){return this.emitError("Could not create buffer because of initialization error"),!1}}if(this.buffers.has(A))throw Error(`Buffer with id ${A} already exists`);this.buffers.set(A,{id:A,content:q,filetype:g,version:E,hasParser:!1});let K=`init_${this.messageIdCounter++}`,Z=await new Promise((U)=>{this.messageCallbacks.set(K,U),this.worker?.postMessage({type:"INITIALIZE_PARSER",bufferId:A,version:E,content:q,filetype:g,messageId:K})});if(!Z.hasParser){if(this.emit("buffer:initialized",A,!1),g!=="plaintext")this.emitWarning(Z.warning||Z.error||"Buffer has no parser",A);return!1}let j={id:A,content:q,filetype:g,version:E,hasParser:!0};return this.buffers.set(A,j),this.emit("buffer:initialized",A,!0),!0}async updateBuffer(A,q,g,E){if(!this.initialized)return;let F=this.buffers.get(A);if(!F||!F.hasParser)return;if(this.buffers.set(A,{...F,content:g,version:E}),!this.editQueues.has(A))this.editQueues.set(A,new qQ((Z)=>this.processEdit(A,Z.edits,Z.newContent,Z.version,Z.isReset)));this.editQueues.get(A).enqueue({edits:q,newContent:g,version:E})}async processEdit(A,q,g,E,F=!1){this.worker?.postMessage({type:F?"RESET_BUFFER":"HANDLE_EDITS",bufferId:A,version:E,content:g,edits:q})}async removeBuffer(A){if(!this.initialized)return;if(this.buffers.delete(A),this.editQueues.has(A))this.editQueues.get(A)?.clear(),this.editQueues.delete(A);if(this.worker)await new Promise((q)=>{let g=`dispose_${A}`;this.messageCallbacks.set(g,q);try{this.worker.postMessage({type:"DISPOSE_BUFFER",bufferId:A})}catch(E){console.error("Error disposing buffer",E),q(!1)}setTimeout(()=>{if(this.messageCallbacks.has(g))this.messageCallbacks.delete(g),console.warn({bufferId:A},"Timed out waiting for buffer to be disposed"),q(!1)},3000)});this.debouncer.clearDebounce(`reset-${A}`)}async destroy(){if(this.initializeResolvers)clearTimeout(this.initializeResolvers.timeoutId),this.initializeResolvers.reject(Error("Client destroyed during initialization")),this.initializeResolvers=void 0;for(let[A,q]of this.messageCallbacks.entries())if(typeof q==="function")try{q({error:"Client destroyed"})}catch(g){}this.messageCallbacks.clear(),B_("tree-sitter-client"),this.debouncer.clear(),this.editQueues.clear(),this.buffers.clear(),this.stopWorker(),this.initialized=!1,this.initializePromise=void 0}async resetBuffer(A,q,g){if(!this.initialized)return;let E=this.buffers.get(A);if(!E||!E.hasParser){this.emitError("Cannot reset buffer with no parser",A);return}this.buffers.set(A,{...E,content:g,version:q}),this.debouncer.debounce(`reset-${A}`,10,()=>this.processEdit(A,[],g,q,!0))}getBuffer(A){return this.buffers.get(A)}getAllBuffers(){return Array.from(this.buffers.values())}isInitialized(){return this.initialized}async setDataPath(A){if(this.options.dataPath===A)return;if(this.options.dataPath=A,this.initialized&&this.worker){let q=`update_datapath_${this.messageIdCounter++}`;return new Promise((g,E)=>{this.messageCallbacks.set(q,(F)=>{if(F.error)E(Error(F.error));else g()}),this.worker.postMessage({type:"UPDATE_DATA_PATH",dataPath:A,messageId:q})})}}async clearCache(){if(!this.initialized||!this.worker)throw Error("Cannot clear cache: client is not initialized");let A=`clear_cache_${this.messageIdCounter++}`;return new Promise((q,g)=>{this.messageCallbacks.set(A,(E)=>{if(E.error)g(Error(E.error));else q()}),this.worker.postMessage({type:"CLEAR_CACHE",messageId:A})})}}function p_(A){if(!A||typeof A!=="string")return!1;if(A.trim().length===0)return!1;if(["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"].includes(A.toUpperCase()))return!1;if(/[<>:"|?*\/\\\x00-\x1f]/.test(A))return!1;if(A.endsWith(".")||A.endsWith(" "))return!1;if(A==="."||A==="..")return!1;return!0}WA({name:"XDG_CONFIG_HOME",description:"Base directory for user-specific configuration files",type:"string",default:""});WA({name:"XDG_DATA_HOME",description:"Base directory for user-specific data files",type:"string",default:""});class AU extends d_{_appName;_globalConfigPath;_globalConfigFile;_localConfigFile;_globalDataPath;constructor(){super();this._appName="opentui"}get appName(){return this._appName}set appName(A){if(!p_(A))throw Error(`Invalid app name "${A}": must be a valid directory name`);if(this._appName!==A)this._appName=A,this._globalConfigPath=void 0,this._globalConfigFile=void 0,this._localConfigFile=void 0,this._globalDataPath=void 0,this.emit("paths:changed",this.toObject())}get globalConfigPath(){if(this._globalConfigPath===void 0){let A=XY.homedir(),g=XA.XDG_CONFIG_HOME||jg.join(A,".config");this._globalConfigPath=jg.join(g,this._appName)}return this._globalConfigPath}get globalConfigFile(){if(this._globalConfigFile===void 0)this._globalConfigFile=jg.join(this.globalConfigPath,"init.ts");return this._globalConfigFile}get localConfigFile(){if(this._localConfigFile===void 0)this._localConfigFile=jg.join(process.cwd(),`.${this._appName}.ts`);return this._localConfigFile}get globalDataPath(){if(this._globalDataPath===void 0){let A=XY.homedir(),g=XA.XDG_DATA_HOME||jg.join(A,".local/share");this._globalDataPath=jg.join(g,this._appName)}return this._globalDataPath}toObject(){return{globalConfigPath:this.globalConfigPath,globalConfigFile:this.globalConfigFile,localConfigFile:this.localConfigFile,globalDataPath:this.globalDataPath}}}function EQ(){return dg("data-paths-opentui",()=>new AU)}function FQ(){let A=EQ(),q={dataPath:A.globalDataPath};return dg("tree-sitter-client",()=>{let g=new ej(q);return A.on("paths:changed",(E)=>{g.setDataPath(E.globalDataPath)}),g})}class KQ{undoStack=[];redoStack=[];saveSnapshot(A,q){let g={extmarks:new Map(Array.from(A.entries()).map(([E,F])=>[E,{...F}])),nextId:q};this.undoStack.push(g),this.redoStack=[]}undo(){if(this.undoStack.length===0)return null;return this.undoStack.pop()}redo(){if(this.redoStack.length===0)return null;return this.redoStack.pop()}pushRedo(A){this.redoStack.push(A)}pushUndo(A){this.undoStack.push(A)}clear(){this.undoStack=[],this.redoStack=[]}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}}class qU{editBuffer;editorView;extmarks=new Map;extmarksByTypeId=new Map;metadata=new Map;nextId=1;destroyed=!1;history=new KQ;typeNameToId=new Map;typeIdToName=new Map;nextTypeId=1;originalMoveCursorLeft;originalMoveCursorRight;originalSetCursorByOffset;originalMoveUpVisual;originalMoveDownVisual;originalDeleteCharBackward;originalDeleteChar;originalInsertText;originalInsertChar;originalDeleteRange;originalSetText;originalReplaceText;originalClear;originalNewLine;originalDeleteLine;originalEditorViewDeleteSelectedText;originalUndo;originalRedo;constructor(A,q){this.editBuffer=A,this.editorView=q,this.originalMoveCursorLeft=A.moveCursorLeft.bind(A),this.originalMoveCursorRight=A.moveCursorRight.bind(A),this.originalSetCursorByOffset=A.setCursorByOffset.bind(A),this.originalMoveUpVisual=q.moveUpVisual.bind(q),this.originalMoveDownVisual=q.moveDownVisual.bind(q),this.originalDeleteCharBackward=A.deleteCharBackward.bind(A),this.originalDeleteChar=A.deleteChar.bind(A),this.originalInsertText=A.insertText.bind(A),this.originalInsertChar=A.insertChar.bind(A),this.originalDeleteRange=A.deleteRange.bind(A),this.originalSetText=A.setText.bind(A),this.originalReplaceText=A.replaceText.bind(A),this.originalClear=A.clear.bind(A),this.originalNewLine=A.newLine.bind(A),this.originalDeleteLine=A.deleteLine.bind(A),this.originalEditorViewDeleteSelectedText=q.deleteSelectedText.bind(q),this.originalUndo=A.undo.bind(A),this.originalRedo=A.redo.bind(A),this.wrapCursorMovement(),this.wrapDeletion(),this.wrapInsertion(),this.wrapEditorViewDeleteSelectedText(),this.wrapUndoRedo(),this.setupContentChangeListener()}wrapCursorMovement(){this.editBuffer.moveCursorLeft=()=>{if(this.destroyed){this.originalMoveCursorLeft();return}let A=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalMoveCursorLeft();return}let g=A-1;if(g<0){this.originalMoveCursorLeft();return}let E=this.findVirtualExtmarkContaining(g);if(E&&A>=E.end){this.editBuffer.setCursorByOffset(E.start-1);return}this.originalMoveCursorLeft()},this.editBuffer.moveCursorRight=()=>{if(this.destroyed){this.originalMoveCursorRight();return}let A=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalMoveCursorRight();return}let g=A+1,E=this.editBuffer.getText().length;if(g>E){this.originalMoveCursorRight();return}let F=this.findVirtualExtmarkContaining(g);if(F&&A<=F.start){this.editBuffer.setCursorByOffset(F.end);return}this.originalMoveCursorRight()},this.editorView.moveUpVisual=()=>{if(this.destroyed){this.originalMoveUpVisual();return}if(this.editorView.hasSelection()){this.originalMoveUpVisual();return}let q=this.editorView.getVisualCursor().offset;this.originalMoveUpVisual();let g=this.editorView.getVisualCursor().offset,E=this.findVirtualExtmarkContaining(g);if(E){let F=g-E.start,K=E.end-g;if(F<K)this.editorView.setCursorByOffset(E.start-1);else this.editorView.setCursorByOffset(E.end)}},this.editorView.moveDownVisual=()=>{if(this.destroyed){this.originalMoveDownVisual();return}if(this.editorView.hasSelection()){this.originalMoveDownVisual();return}this.originalMoveDownVisual();let q=this.editorView.getVisualCursor().offset,g=this.findVirtualExtmarkContaining(q);if(g){let E=q-g.start,F=g.end-q;if(E<F)this.editorView.setCursorByOffset(g.start-1);else this.editorView.setCursorByOffset(g.end)}},this.editBuffer.setCursorByOffset=(A)=>{if(this.destroyed){this.originalSetCursorByOffset(A);return}let q=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalSetCursorByOffset(A);return}if(A>q){let F=this.findVirtualExtmarkContaining(A);if(F&&q<=F.start){this.originalSetCursorByOffset(F.end);return}}else for(let F of this.extmarks.values())if(F.virtual&&q>=F.end&&A<F.end&&A>=F.start){this.originalSetCursorByOffset(F.start-1);return}this.originalSetCursorByOffset(A)}}wrapDeletion(){this.editBuffer.deleteCharBackward=()=>{if(this.destroyed){this.originalDeleteCharBackward();return}this.saveSnapshot();let A=this.editorView.getVisualCursor().offset,q=this.editorView.hasSelection();if(A===0){this.originalDeleteCharBackward();return}if(q){this.originalDeleteCharBackward();return}let g=A-1,E=this.findVirtualExtmarkContaining(g);if(E&&A===E.end){let F=this.offsetToPosition(E.start),K=this.offsetToPosition(E.end),Z=E.start,j=E.end-E.start;this.deleteExtmarkById(E.id),this.originalDeleteRange(F.row,F.col,K.row,K.col),this.adjustExtmarksAfterDeletion(Z,j),this.updateHighlights();return}this.originalDeleteCharBackward(),this.adjustExtmarksAfterDeletion(g,1)},this.editBuffer.deleteChar=()=>{if(this.destroyed){this.originalDeleteChar();return}this.saveSnapshot();let A=this.editorView.getVisualCursor().offset,q=this.editBuffer.getText().length,g=this.editorView.hasSelection();if(A>=q){this.originalDeleteChar();return}if(g){this.originalDeleteChar();return}let E=A,F=this.findVirtualExtmarkContaining(E);if(F&&A===F.start){let K=this.offsetToPosition(F.start),Z=this.offsetToPosition(F.end),j=F.start,U=F.end-F.start;this.deleteExtmarkById(F.id),this.originalDeleteRange(K.row,K.col,Z.row,Z.col),this.adjustExtmarksAfterDeletion(j,U),this.updateHighlights();return}this.originalDeleteChar(),this.adjustExtmarksAfterDeletion(E,1)},this.editBuffer.deleteRange=(A,q,g,E)=>{if(this.destroyed){this.originalDeleteRange(A,q,g,E);return}this.saveSnapshot();let F=this.positionToOffset(A,q),Z=this.positionToOffset(g,E)-F;this.originalDeleteRange(A,q,g,E),this.adjustExtmarksAfterDeletion(F,Z)},this.editBuffer.deleteLine=()=>{if(this.destroyed){this.originalDeleteLine();return}this.saveSnapshot();let A=this.editBuffer.getText(),q=this.editorView.getVisualCursor().offset,g=0;for(let K=q-1;K>=0;K--)if(A[K]===`
|
|
6
|
+
`)E.name="linefeed",E.meta=A.length===2;else if(A==="\t")E.name="tab";else if(A==="\b"||A==="\x1B\b"||A==="\x7F"||A==="\x1B\x7F")E.name="backspace",E.meta=A.charAt(0)==="\x1B";else if(A==="\x1B"||A==="\x1B\x1B")E.name="escape",E.meta=A.length===2;else if(A===" "||A==="\x1B ")E.name="space",E.meta=A.length===2;else if(A==="\x00")E.name="space",E.ctrl=!0;else if(A.length===1&&A<="\x1A")E.name=String.fromCharCode(A.charCodeAt(0)+97-1),E.ctrl=!0;else if(A.length===1&&A>="0"&&A<="9")E.name=A,E.number=!0;else if(A.length===1&&A>="a"&&A<="z")E.name=A;else if(A.length===1&&A>="A"&&A<="Z")E.name=A.toLowerCase(),E.shift=!0;else if(A.length===1)E.name=A;else if(g=p_.exec(A)){E.meta=!0;let K=g[1],Z=/^[A-Z]$/.test(K);if(K==="F")E.name="right";else if(K==="B")E.name="left";else if(Z)E.shift=!0,E.name=K;else E.name=K}else if(A.length===2&&A[0]==="\x1B"&&A[1]<="\x1A")E.meta=!0,E.ctrl=!0,E.name=String.fromCharCode(A.charCodeAt(1)+97-1);else if(g=u_.exec(A)){let K=[...A];if(K[0]==="\x1B"&&K[1]==="\x1B")E.option=!0,E.meta=!0;let Z=[g[1],g[2],g[4],g[6]].filter(Boolean).join(""),j=parseInt(g[3]||g[5]||"1",10)-1;E.ctrl=!!(j&4),E.meta=!!(j&2),E.shift=!!(j&1),E.option=!!(j&2),E.super=!!(j&8),E.hyper=!!(j&16),E.code=Z;let U=aQ[Z];if(U)E.name=U,E.shift=i_(Z)||E.shift,E.ctrl=t_(Z)||E.ctrl;else E.name="",E.code=void 0}else if(A==="\x1B[3~")E.name="delete",E.meta=!1,E.code="[3~";return E};class zE{name;ctrl;meta;shift;option;sequence;number;raw;eventType;source;code;super;hyper;capsLock;numLock;baseCode;repeated;_defaultPrevented=!1;_propagationStopped=!1;constructor(A){this.name=A.name,this.ctrl=A.ctrl,this.meta=A.meta,this.shift=A.shift,this.option=A.option,this.sequence=A.sequence,this.number=A.number,this.raw=A.raw,this.eventType=A.eventType,this.source=A.source,this.code=A.code,this.super=A.super,this.hyper=A.hyper,this.capsLock=A.capsLock,this.numLock=A.numLock,this.baseCode=A.baseCode,this.repeated=A.repeated}get defaultPrevented(){return this._defaultPrevented}get propagationStopped(){return this._propagationStopped}preventDefault(){this._defaultPrevented=!0}stopPropagation(){this._propagationStopped=!0}}class YU{text;_defaultPrevented=!1;_propagationStopped=!1;constructor(A){this.text=A}get defaultPrevented(){return this._defaultPrevented}get propagationStopped(){return this._propagationStopped}preventDefault(){this._defaultPrevented=!0}stopPropagation(){this._propagationStopped=!0}}class QU extends n_{useKittyKeyboard;constructor(A=!1){super();this.useKittyKeyboard=A}processInput(A){let q=hQ(A,{useKittyKeyboard:this.useKittyKeyboard});if(!q)return!1;try{switch(q.eventType){case"press":this.emit("keypress",new zE(q));break;case"release":this.emit("keyrelease",new zE(q));break;default:this.emit("keypress",new zE(q));break}}catch(g){return console.error("[KeyHandler] Error processing input:",g),!0}return!0}processPaste(A){try{let q=Bun.stripANSI(A);this.emit("paste",new YU(q))}catch(q){console.error("[KeyHandler] Error processing paste:",q)}}}class OU extends QU{renderableHandlers=new Map;constructor(A=!1){super(A)}emit(A,...q){return this.emitWithPriority(A,...q)}emitWithPriority(A,...q){let g=!1,E=this.listeners(A);if(E.length>0){g=!0;for(let j of E){try{j(...q)}catch(U){console.error(`[KeyHandler] Error in global ${A} handler:`,U)}if(A==="keypress"||A==="keyrelease"||A==="paste"){if(q[0].propagationStopped)return g}}}let F=this.renderableHandlers.get(A),K=F&&F.size>0?[...F]:[],Z=!1;if(F&&F.size>0){if(Z=!0,A==="keypress"||A==="keyrelease"||A==="paste"){let j=q[0];if(j.defaultPrevented)return g||Z;if(j.propagationStopped)return g||Z}for(let j of K){try{j(...q)}catch(U){console.error(`[KeyHandler] Error in renderable ${A} handler:`,U)}if(A==="keypress"||A==="keyrelease"||A==="paste"){if(q[0].propagationStopped)return g||Z}}}return g||Z}onInternal(A,q){if(!this.renderableHandlers.has(A))this.renderableHandlers.set(A,new Set);this.renderableHandlers.get(A).add(q)}offInternal(A,q){let g=this.renderableHandlers.get(A);if(g)g.delete(q)}}class OA{buffer;constructor(A){this.buffer=A}static fromArray(A){return new OA(A)}static fromValues(A,q,g,E=1){return new OA(new Float32Array([A,q,g,E]))}static fromInts(A,q,g,E=255){return new OA(new Float32Array([A/255,q/255,g/255,E/255]))}static fromHex(A){return FZ(A)}toInts(){return[Math.round(this.r*255),Math.round(this.g*255),Math.round(this.b*255),Math.round(this.a*255)]}get r(){return this.buffer[0]}set r(A){this.buffer[0]=A}get g(){return this.buffer[1]}set g(A){this.buffer[1]=A}get b(){return this.buffer[2]}set b(A){this.buffer[2]=A}get a(){return this.buffer[3]}set a(A){this.buffer[3]=A}map(A){return[A(this.r),A(this.g),A(this.b),A(this.a)]}toString(){return`rgba(${this.r.toFixed(2)}, ${this.g.toFixed(2)}, ${this.b.toFixed(2)}, ${this.a.toFixed(2)})`}equals(A){if(!A)return!1;return this.r===A.r&&this.g===A.g&&this.b===A.b&&this.a===A.a}}function FZ(A){if(A=A.replace(/^#/,""),A.length===3)A=A[0]+A[0]+A[1]+A[1]+A[2]+A[2];else if(A.length===4)A=A[0]+A[0]+A[1]+A[1]+A[2]+A[2]+A[3]+A[3];if(!/^[0-9A-Fa-f]{6}$/.test(A)&&!/^[0-9A-Fa-f]{8}$/.test(A))return console.warn(`Invalid hex color: ${A}, defaulting to magenta`),OA.fromValues(1,0,1,1);let q=parseInt(A.substring(0,2),16)/255,g=parseInt(A.substring(2,4),16)/255,E=parseInt(A.substring(4,6),16)/255,F=A.length===8?parseInt(A.substring(6,8),16)/255:1;return OA.fromValues(q,g,E,F)}var rY={black:"#000000",white:"#FFFFFF",red:"#FF0000",green:"#008000",blue:"#0000FF",yellow:"#FFFF00",cyan:"#00FFFF",magenta:"#FF00FF",silver:"#C0C0C0",gray:"#808080",grey:"#808080",maroon:"#800000",olive:"#808000",lime:"#00FF00",aqua:"#00FFFF",teal:"#008080",navy:"#000080",fuchsia:"#FF00FF",purple:"#800080",orange:"#FFA500",brightblack:"#666666",brightred:"#FF6666",brightgreen:"#66FF66",brightblue:"#6666FF",brightyellow:"#FFFF66",brightcyan:"#66FFFF",brightmagenta:"#FF66FF",brightwhite:"#FFFFFF"};function u(A){if(typeof A==="string"){let q=A.toLowerCase();if(q==="transparent")return OA.fromValues(0,0,0,0);if(rY[q])return FZ(rY[q]);return FZ(A)}return A}var Rq={NONE:0,BOLD:1,DIM:2,ITALIC:4,UNDERLINE:8,BLINK:16,INVERSE:32,HIDDEN:64,STRIKETHROUGH:128};var zQ;((A)=>{A[A.topLeft=0]="topLeft",A[A.topRight=1]="topRight",A[A.bottomLeft=2]="bottomLeft",A[A.bottomRight=3]="bottomRight"})(zQ||={});function wE({bold:A=!1,italic:q=!1,underline:g=!1,dim:E=!1,blink:F=!1,inverse:K=!1,hidden:Z=!1,strikethrough:j=!1}={}){let U=Rq.NONE;if(A)U|=Rq.BOLD;if(q)U|=Rq.ITALIC;if(g)U|=Rq.UNDERLINE;if(E)U|=Rq.DIM;if(F)U|=Rq.BLINK;if(K)U|=Rq.INVERSE;if(Z)U|=Rq.HIDDEN;if(j)U|=Rq.STRIKETHROUGH;return U}var r_=255,o_=8,e_=16777215;function BQ(A,q){let g=A&r_,E=(q&e_)<<o_;return g|E}var wQ=Symbol.for("@opentui/core/StyledText");function CQ(A){return A&&A[wQ]}class b6{[wQ]=!0;chunks;constructor(A){this.chunks=A}}function GZ(A){return new b6([{__isChunk:!0,text:A}])}function JU(A,q){if(typeof A==="object"&&"__isChunk"in A){let g=A,E=q.fg?u(q.fg):g.fg,F=q.bg?u(q.bg):g.bg,K=wE(q),Z=g.attributes?g.attributes|K:K;return{__isChunk:!0,text:g.text,fg:E,bg:F,attributes:Z,link:g.link}}else{let g=String(A),E=q.fg?u(q.fg):void 0,F=q.bg?u(q.bg):void 0,K=wE(q);return{__isChunk:!0,text:g,fg:E,bg:F,attributes:K}}}var Xg=(A)=>JU(A,{bold:!0});var yE=(A)=>JU(A,{underline:!0});var v6=(A)=>(q)=>JU(q,{fg:A});function Hq(A,...q){let g=[];for(let E=0;E<A.length;E++){let F=A[E];if(F)g.push({__isChunk:!0,text:F,attributes:0});let K=q[E];if(typeof K==="object"&&"__isChunk"in K)g.push(K);else if(K!==void 0){let Z=String(K);g.push({__isChunk:!0,text:Z,attributes:0})}}return new b6(g)}class MU{tick(A){return 1}reset(){}}var iq="\x1B",oY="\x1B[200~",nK="\x1B[201~";function q$(A){if(!A.startsWith(iq))return"not-escape";if(A.length===1)return"incomplete";let q=A.slice(1);if(q.startsWith("[")){if(q.startsWith("[M"))return A.length>=6?"complete":"incomplete";return g$(A)}if(q.startsWith("]"))return E$(A);if(q.startsWith("P"))return F$(A);if(q.startsWith("_"))return K$(A);if(q.startsWith("O"))return q.length>=2?"complete":"incomplete";if(q.length===1)return"complete";return"complete"}function g$(A){if(!A.startsWith(iq+"["))return"complete";if(A.length<3)return"incomplete";let q=A.slice(2),g=q[q.length-1],E=g.charCodeAt(0);if(E>=64&&E<=126){if(q.startsWith("<")){if(/^<\d+;\d+;\d+[Mm]$/.test(q))return"complete";if(g==="M"||g==="m"){let K=q.slice(1,-1).split(";");if(K.length===3&&K.every((Z)=>/^\d+$/.test(Z)))return"complete"}return"incomplete"}return"complete"}return"incomplete"}function E$(A){if(!A.startsWith(iq+"]"))return"complete";if(A.endsWith(iq+"\\")||A.endsWith("\x07"))return"complete";return"incomplete"}function F$(A){if(!A.startsWith(iq+"P"))return"complete";if(A.endsWith(iq+"\\"))return"complete";return"incomplete"}function K$(A){if(!A.startsWith(iq+"_"))return"complete";if(A.endsWith(iq+"\\"))return"complete";return"incomplete"}function eY(A){let q=[],g=0;while(g<A.length){let E=A.slice(g);if(E.startsWith(iq)){let F=1;while(F<=E.length){let K=E.slice(0,F),Z=q$(K);if(Z==="complete"){q.push(K),g+=F;break}else if(Z==="incomplete")F++;else{q.push(K),g+=F;break}}if(F>E.length)return{sequences:q,remainder:E}}else q.push(E[0]),g++}return{sequences:q,remainder:""}}class _U extends A${buffer="";timeout=null;timeoutMs;pasteMode=!1;pasteBuffer="";constructor(A={}){super();this.timeoutMs=A.timeout??10}process(A){if(this.timeout)clearTimeout(this.timeout),this.timeout=null;let q;if(Buffer.isBuffer(A))if(A.length===1&&A[0]>127){let F=A[0]-128;q="\x1B"+String.fromCharCode(F)}else q=A.toString();else q=A;if(q.length===0&&this.buffer.length===0){this.emit("data","");return}if(this.buffer+=q,this.pasteMode){this.pasteBuffer+=this.buffer,this.buffer="";let F=this.pasteBuffer.indexOf(nK);if(F!==-1){let K=this.pasteBuffer.slice(0,F),Z=this.pasteBuffer.slice(F+nK.length);if(this.pasteMode=!1,this.pasteBuffer="",this.emit("paste",K),Z.length>0)this.process(Z)}return}let g=this.buffer.indexOf(oY);if(g!==-1){if(g>0){let K=this.buffer.slice(0,g),Z=eY(K);for(let j of Z.sequences)this.emit("data",j)}this.buffer=this.buffer.slice(g+oY.length),this.pasteMode=!0,this.pasteBuffer=this.buffer,this.buffer="";let F=this.pasteBuffer.indexOf(nK);if(F!==-1){let K=this.pasteBuffer.slice(0,F),Z=this.pasteBuffer.slice(F+nK.length);if(this.pasteMode=!1,this.pasteBuffer="",this.emit("paste",K),Z.length>0)this.process(Z)}return}let E=eY(this.buffer);this.buffer=E.remainder;for(let F of E.sequences)this.emit("data",F);if(this.buffer.length>0)this.timeout=setTimeout(()=>{let F=this.flush();for(let K of F)this.emit("data",K)},this.timeoutMs)}flush(){if(this.timeout)clearTimeout(this.timeout),this.timeout=null;if(this.buffer.length===0)return[];let A=[this.buffer];return this.buffer="",A}clear(){if(this.timeout)clearTimeout(this.timeout),this.timeout=null;this.buffer="",this.pasteMode=!1,this.pasteBuffer=""}getBuffer(){return this.buffer}destroy(){this.clear()}}function AU(A){if(A==null)return UA.Auto;switch(A.toLowerCase()){case"auto":return UA.Auto;case"flex-start":return UA.FlexStart;case"center":return UA.Center;case"flex-end":return UA.FlexEnd;case"stretch":return UA.Stretch;case"baseline":return UA.Baseline;case"space-between":return UA.SpaceBetween;case"space-around":return UA.SpaceAround;case"space-evenly":return UA.SpaceEvenly;default:return UA.Auto}}function qU(A){if(A==null)return UA.Stretch;switch(A.toLowerCase()){case"auto":return UA.Auto;case"flex-start":return UA.FlexStart;case"center":return UA.Center;case"flex-end":return UA.FlexEnd;case"stretch":return UA.Stretch;case"baseline":return UA.Baseline;case"space-between":return UA.SpaceBetween;case"space-around":return UA.SpaceAround;case"space-evenly":return UA.SpaceEvenly;default:return UA.Stretch}}function gU(A){if(A==null)return Kq.Column;switch(A.toLowerCase()){case"column":return Kq.Column;case"column-reverse":return Kq.ColumnReverse;case"row":return Kq.Row;case"row-reverse":return Kq.RowReverse;default:return Kq.Column}}function EU(A){if(A==null)return cA.FlexStart;switch(A.toLowerCase()){case"flex-start":return cA.FlexStart;case"center":return cA.Center;case"flex-end":return cA.FlexEnd;case"space-between":return cA.SpaceBetween;case"space-around":return cA.SpaceAround;case"space-evenly":return cA.SpaceEvenly;default:return cA.FlexStart}}function FU(A){if(A==null)return dq.Visible;switch(A.toLowerCase()){case"visible":return dq.Visible;case"hidden":return dq.Hidden;case"scroll":return dq.Scroll;default:return dq.Visible}}function KU(A){if(A==null)return pq.Relative;switch(A.toLowerCase()){case"static":return pq.Static;case"relative":return pq.Relative;case"absolute":return pq.Absolute;default:return pq.Static}}function ZU(A){if(A==null)return uq.NoWrap;switch(A.toLowerCase()){case"no-wrap":return uq.NoWrap;case"wrap":return uq.Wrap;case"wrap-reverse":return uq.WrapReverse;default:return uq.NoWrap}}class CE{mouseButtonsPressed=new Set;static SCROLL_DIRECTIONS={0:"up",1:"down",2:"left",3:"right"};reset(){this.mouseButtonsPressed.clear()}parseMouseEvent(A){let q=A.toString(),g=q.match(/\x1b\[<(\d+);(\d+);(\d+)([Mm])/);if(g){let[,E,F,K,Z]=g,j=parseInt(E),U=j&3,G=(j&64)!==0,Y=!G?void 0:CE.SCROLL_DIRECTIONS[U],M=(j&32)!==0,O={shift:(j&4)!==0,alt:(j&8)!==0,ctrl:(j&16)!==0},$,_;if(G&&Z==="M")$="scroll",_={direction:Y,delta:1};else if(M){let x=this.mouseButtonsPressed.size>0;if(U===3)$="move";else if(x)$="drag";else $="move"}else if($=Z==="M"?"down":"up",$==="down"&&U!==3)this.mouseButtonsPressed.add(U);else if($==="up")this.mouseButtonsPressed.clear();return{type:$,button:U===3?0:U,x:parseInt(F)-1,y:parseInt(K)-1,modifiers:O,scroll:_}}if(q.startsWith("\x1B[M")&&q.length>=6){let E=q.charCodeAt(3)-32,F=q.charCodeAt(4)-33,K=q.charCodeAt(5)-33,Z=E&3,j=(E&64)!==0,U=!j?void 0:CE.SCROLL_DIRECTIONS[Z],G={shift:(E&4)!==0,alt:(E&8)!==0,ctrl:(E&16)!==0},Y,M,O;if(j)Y="scroll",M=0,O={direction:U,delta:1};else Y=Z===3?"up":"down",M=Z===3?0:Z;return{type:Y,button:M,x:F,y:K,modifiers:G,scroll:O}}return null}}class kQ{renderable;relativeX;relativeY;constructor(A,q,g){this.renderable=A,this.relativeX=q-this.renderable.x,this.relativeY=g-this.renderable.y}get x(){return this.renderable.x+this.relativeX}get y(){return this.renderable.y+this.relativeY}}class $U{_anchor;_focus;_selectedRenderables=[];_touchedRenderables=[];_isActive=!0;_isSelecting=!0;_isStart=!1;constructor(A,q,g){this._anchor=new kQ(A,q.x,q.y),this._focus={...g}}get isStart(){return this._isStart}set isStart(A){this._isStart=A}get anchor(){return{x:this._anchor.x,y:this._anchor.y}}get focus(){return{...this._focus}}set focus(A){this._focus={...A}}get isActive(){return this._isActive}set isActive(A){this._isActive=A}get isSelecting(){return this._isSelecting}set isSelecting(A){this._isSelecting=A}get bounds(){let A=Math.min(this._anchor.x,this._focus.x),q=Math.max(this._anchor.x,this._focus.x),g=Math.min(this._anchor.y,this._focus.y),E=Math.max(this._anchor.y,this._focus.y),F=q-A+1,K=E-g+1;return{x:A,y:g,width:F,height:K}}updateSelectedRenderables(A){this._selectedRenderables=A}get selectedRenderables(){return this._selectedRenderables}updateTouchedRenderables(A){this._touchedRenderables=A}get touchedRenderables(){return this._touchedRenderables}getSelectedText(){return this._selectedRenderables.sort((q,g)=>{let E=q.y,F=g.y;if(E!==F)return E-F;return q.x-g.x}).filter((q)=>!q.isDestroyed).map((q)=>q.getSelectedText()).filter((q)=>q).join(`
|
|
7
|
+
`)}}function XU(A,q,g){if(!A?.isActive)return null;return{anchorX:A.anchor.x-q,anchorY:A.anchor.y-g,focusX:A.focus.x-q,focusY:A.focus.y-g,isActive:!0}}var HU=Symbol.for("@opentui/core/singleton");function rg(A,q){let g=globalThis[HU]??={};if(!(A in g))g[A]=q();return g[A]}function Z$(A){let q=globalThis[HU];if(q&&A in q)delete q[A]}function j$(A){let q=globalThis[HU];return q&&A in q}var ig=rg("env-registry",()=>({}));function WA(A){let q=ig[A.name];if(q){if(q.description!==A.description||q.type!==A.type||q.default!==A.default)throw new Error(`Environment variable "${A.name}" is already registered with different configuration. Existing: ${JSON.stringify(q)}, New: ${JSON.stringify(A)}`);return}ig[A.name]=A}function U$(A){let q=A.toLowerCase();return["true","1","on","yes"].includes(q)}function G$(A){let q=process.env[A.name];if(q===void 0&&A.default!==void 0)return A.default;if(q===void 0)throw new Error(`Required environment variable ${A.name} is not set. ${A.description}`);switch(A.type){case"boolean":return typeof q==="boolean"?q:U$(q);case"number":let g=Number(q);if(isNaN(g))throw new Error(`Environment variable ${A.name} must be a valid number, got: ${q}`);return g;case"string":default:return q}}class DQ{parsedValues=new Map;get(A){if(this.parsedValues.has(A))return this.parsedValues.get(A);if(!(A in ig))throw new Error(`Environment variable ${A} is not registered.`);try{let q=G$(ig[A]);return this.parsedValues.set(A,q),q}catch(q){throw new Error(`Failed to parse env var ${A}: ${q instanceof Error?q.message:String(q)}`)}}has(A){return A in ig}clearCache(){this.parsedValues.clear()}}var rK=rg("env-store",()=>new DQ);var XA=new Proxy({},{get(A,q){if(typeof q!=="string")return;return rK.get(q)},has(A,q){return rK.has(q)},ownKeys(){return Object.keys(ig)},getOwnPropertyDescriptor(A,q){if(rK.has(q))return{enumerable:!0,configurable:!0,get:()=>rK.get(q)};return}});WA({name:"OTUI_TS_STYLE_WARN",default:!1,description:"Enable warnings for missing syntax styles"});var w6=new Map;class yQ{scopeId;constructor(A){if(this.scopeId=A,!w6.has(this.scopeId))w6.set(this.scopeId,new Map)}debounce(A,q,g){let E=w6.get(this.scopeId);return new Promise((F,K)=>{if(E.has(A))clearTimeout(E.get(A));let Z=setTimeout(()=>{try{F(g())}catch(j){K(j)}E.delete(A)},q);E.set(A,Z)})}clearDebounce(A){let q=w6.get(this.scopeId);if(q&&q.has(A))clearTimeout(q.get(A)),q.delete(A)}clear(){let A=w6.get(this.scopeId);if(A)A.forEach((q)=>clearTimeout(q)),A.clear()}}function Q$(A){return new yQ(A)}function O$(A){let q=w6.get(A);if(q)q.forEach((g)=>clearTimeout(g)),q.clear()}class bQ{processor;queue=[];processing=!1;autoProcess=!0;constructor(A,q=!0){this.processor=A,this.autoProcess=q}enqueue(A){if(this.queue.push(A),!this.processing&&this.autoProcess)this.processQueue()}processQueue(){if(this.queue.length===0)return;this.processing=!0,queueMicrotask(async()=>{if(this.queue.length===0){this.processing=!1;return}let A=this.queue.shift();try{await this.processor(A)}catch(q){console.error("Error processing queue item:",q)}if(this.queue.length>0)this.processQueue();else this.processing=!1})}clear(){this.queue=[]}isProcessing(){return this.processing}size(){return this.queue.length}}var lj;function J$(){if(!lj)lj=[{filetype:"javascript",queries:{highlights:[Qq(Oq(Jq(import.meta.url)),vY)]},wasm:Qq(Oq(Jq(import.meta.url)),mY)},{filetype:"typescript",queries:{highlights:[Qq(Oq(Jq(import.meta.url)),fY)]},wasm:Qq(Oq(Jq(import.meta.url)),cY)},{filetype:"markdown",queries:{highlights:[Qq(Oq(Jq(import.meta.url)),dY)],injections:[Qq(Oq(Jq(import.meta.url)),uY)]},wasm:Qq(Oq(Jq(import.meta.url)),pY),injectionMapping:{nodeTypes:{inline:"markdown_inline",pipe_table_cell:"markdown_inline"},infoStringMap:{javascript:"javascript",js:"javascript",typescript:"typescript",ts:"typescript",markdown:"markdown",md:"markdown"}}},{filetype:"markdown_inline",queries:{highlights:[Qq(Oq(Jq(import.meta.url)),lY)]},wasm:Qq(Oq(Jq(import.meta.url)),iY)},{filetype:"zig",queries:{highlights:[Qq(Oq(Jq(import.meta.url)),tY)]},wasm:Qq(Oq(Jq(import.meta.url)),sY)}];return lj}function vQ(A){return A.includes("$bunfs")||/^B:[\\/]~BUN/i.test(A)}function L$(){return process.platform==="win32"?"B:\\~BUN\\root":"/$bunfs/root"}function V$(A){return H$(L$(),X$(A))}WA({name:"OTUI_TREE_SITTER_WORKER_PATH",description:"Path to the TreeSitter worker",type:"string",default:""});var W$=J$();var N$=(A)=>A.startsWith("http://")||A.startsWith("https://");class LU extends Y${initialized=!1;worker;buffers=new Map;initializePromise;initializeResolvers;messageCallbacks=new Map;messageIdCounter=0;editQueues=new Map;debouncer;options;constructor(A){super();this.options=A,this.debouncer=Q$("tree-sitter-client"),this.startWorker()}emitError(A,q){if(this.listenerCount("error")>0)this.emit("error",A,q)}emitWarning(A,q){if(this.listenerCount("warning")>0)this.emit("warning",A,q)}startWorker(){if(this.worker)return;let A;if(XA.OTUI_TREE_SITTER_WORKER_PATH)A=XA.OTUI_TREE_SITTER_WORKER_PATH;else if(typeof OTUI_TREE_SITTER_WORKER_PATH!=="undefined")A=OTUI_TREE_SITTER_WORKER_PATH;else if(this.options.workerPath)A=this.options.workerPath;else if(A=new URL("./parser.worker.js",import.meta.url).href,!$$(AQ(import.meta.dirname,"parser.worker.js")))A=new URL("./parser.worker.ts",import.meta.url).href;this.worker=new Worker(A),this.worker.onmessage=this.handleWorkerMessage.bind(this),this.worker.onerror=(q)=>{if(console.error("TreeSitter worker error:",q.message),this.initializeResolvers)clearTimeout(this.initializeResolvers.timeoutId),this.initializeResolvers.reject(new Error(`Worker error: ${q.message}`)),this.initializeResolvers=void 0;this.emitError(`Worker error: ${q.message}`)}}stopWorker(){if(!this.worker)return;this.worker.terminate(),this.worker=void 0}handleReset(){return this.buffers.clear(),this.stopWorker(),this.startWorker(),this.initializePromise=void 0,this.initializeResolvers=void 0,this.initialize()}async initialize(){if(this.initializePromise)return this.initializePromise;return this.initializePromise=new Promise((A,q)=>{let g=this.options.initTimeout??1e4,E=setTimeout(()=>{let F=new Error("Worker initialization timed out");console.error("TreeSitter client:",F.message),this.initializeResolvers=void 0,q(F)},g);this.initializeResolvers={resolve:A,reject:q,timeoutId:E},this.worker?.postMessage({type:"INIT",dataPath:this.options.dataPath})}),await this.initializePromise,await this.registerDefaultParsers(),this.initializePromise}async registerDefaultParsers(){for(let A of W$)this.addFiletypeParser(A)}resolvePath(A){if(N$(A))return A;if(vQ(A))return V$(_$(A).base);if(!M$(A))return AQ(A);return A}addFiletypeParser(A){let q={...A,wasm:this.resolvePath(A.wasm),queries:{highlights:A.queries.highlights.map((g)=>this.resolvePath(g)),injections:A.queries.injections?.map((g)=>this.resolvePath(g))}};this.worker?.postMessage({type:"ADD_FILETYPE_PARSER",filetypeParser:q})}async getPerformance(){let A=`performance_${this.messageIdCounter++}`;return new Promise((q)=>{this.messageCallbacks.set(A,q),this.worker?.postMessage({type:"GET_PERFORMANCE",messageId:A})})}async highlightOnce(A,q){if(!this.initialized)try{await this.initialize()}catch(E){return{error:"Could not highlight because of initialization error"}}let g=`oneshot_${this.messageIdCounter++}`;return new Promise((E)=>{this.messageCallbacks.set(g,E),this.worker?.postMessage({type:"ONESHOT_HIGHLIGHT",content:A,filetype:q,messageId:g})})}handleWorkerMessage(A){let{type:q,bufferId:g,error:E,highlights:F,warning:K,messageId:Z,hasParser:j,performance:U,version:G}=A.data;if(q==="HIGHLIGHT_RESPONSE"){let Y=this.buffers.get(g);if(!Y||!Y.hasParser)return;if(Y.version!==G){this.resetBuffer(g,Y.version,Y.content);return}this.emit("highlights:response",g,G,F)}if(q==="INIT_RESPONSE"){if(this.initializeResolvers){if(clearTimeout(this.initializeResolvers.timeoutId),E)console.error("TreeSitter client initialization failed:",E),this.initializeResolvers.reject(new Error(E));else this.initialized=!0,this.initializeResolvers.resolve();this.initializeResolvers=void 0;return}}if(q==="PARSER_INIT_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({hasParser:j,warning:K,error:E});return}if(q==="PRELOAD_PARSER_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({hasParser:j});return}if(q==="BUFFER_DISPOSED"){let Y=this.messageCallbacks.get(`dispose_${g}`);if(Y)this.messageCallbacks.delete(`dispose_${g}`),Y(!0);this.emit("buffer:disposed",g);return}if(q==="PERFORMANCE_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y(U);return}if(q==="ONESHOT_HIGHLIGHT_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({highlights:F,warning:K,error:E});return}if(q==="UPDATE_DATA_PATH_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({error:E});return}if(q==="CLEAR_CACHE_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({error:E});return}if(K){this.emitWarning(K,g);return}if(E){this.emitError(E,g);return}if(q==="WORKER_LOG"){let{logType:Y,data:M}=A.data,O=M.join(" ");if(this.emit("worker:log",Y,O),Y==="log")console.log("TSWorker:",...M);else if(Y==="error")console.error("TSWorker:",...M);else if(Y==="warn")console.warn("TSWorker:",...M);return}}async preloadParser(A){let q=`has_parser_${this.messageIdCounter++}`;return(await new Promise((E)=>{this.messageCallbacks.set(q,E),this.worker?.postMessage({type:"PRELOAD_PARSER",filetype:A,messageId:q})})).hasParser}async createBuffer(A,q,g,E=1,F=!0){if(!this.initialized){if(!F)return this.emitError("Could not create buffer because client is not initialized"),!1;try{await this.initialize()}catch(U){return this.emitError("Could not create buffer because of initialization error"),!1}}if(this.buffers.has(A))throw new Error(`Buffer with id ${A} already exists`);this.buffers.set(A,{id:A,content:q,filetype:g,version:E,hasParser:!1});let K=`init_${this.messageIdCounter++}`,Z=await new Promise((U)=>{this.messageCallbacks.set(K,U),this.worker?.postMessage({type:"INITIALIZE_PARSER",bufferId:A,version:E,content:q,filetype:g,messageId:K})});if(!Z.hasParser){if(this.emit("buffer:initialized",A,!1),g!=="plaintext")this.emitWarning(Z.warning||Z.error||"Buffer has no parser",A);return!1}let j={id:A,content:q,filetype:g,version:E,hasParser:!0};return this.buffers.set(A,j),this.emit("buffer:initialized",A,!0),!0}async updateBuffer(A,q,g,E){if(!this.initialized)return;let F=this.buffers.get(A);if(!F||!F.hasParser)return;if(this.buffers.set(A,{...F,content:g,version:E}),!this.editQueues.has(A))this.editQueues.set(A,new bQ((Z)=>this.processEdit(A,Z.edits,Z.newContent,Z.version,Z.isReset)));this.editQueues.get(A).enqueue({edits:q,newContent:g,version:E})}async processEdit(A,q,g,E,F=!1){this.worker?.postMessage({type:F?"RESET_BUFFER":"HANDLE_EDITS",bufferId:A,version:E,content:g,edits:q})}async removeBuffer(A){if(!this.initialized)return;if(this.buffers.delete(A),this.editQueues.has(A))this.editQueues.get(A)?.clear(),this.editQueues.delete(A);if(this.worker)await new Promise((q)=>{let g=`dispose_${A}`;this.messageCallbacks.set(g,q);try{this.worker.postMessage({type:"DISPOSE_BUFFER",bufferId:A})}catch(E){console.error("Error disposing buffer",E),q(!1)}setTimeout(()=>{if(this.messageCallbacks.has(g))this.messageCallbacks.delete(g),console.warn({bufferId:A},"Timed out waiting for buffer to be disposed"),q(!1)},3000)});this.debouncer.clearDebounce(`reset-${A}`)}async destroy(){if(this.initializeResolvers)clearTimeout(this.initializeResolvers.timeoutId),this.initializeResolvers.reject(new Error("Client destroyed during initialization")),this.initializeResolvers=void 0;for(let[A,q]of this.messageCallbacks.entries())if(typeof q==="function")try{q({error:"Client destroyed"})}catch(g){}this.messageCallbacks.clear(),O$("tree-sitter-client"),this.debouncer.clear(),this.editQueues.clear(),this.buffers.clear(),this.stopWorker(),this.initialized=!1,this.initializePromise=void 0}async resetBuffer(A,q,g){if(!this.initialized)return;let E=this.buffers.get(A);if(!E||!E.hasParser){this.emitError("Cannot reset buffer with no parser",A);return}this.buffers.set(A,{...E,content:g,version:q}),this.debouncer.debounce(`reset-${A}`,10,()=>this.processEdit(A,[],g,q,!0))}getBuffer(A){return this.buffers.get(A)}getAllBuffers(){return Array.from(this.buffers.values())}isInitialized(){return this.initialized}async setDataPath(A){if(this.options.dataPath===A)return;if(this.options.dataPath=A,this.initialized&&this.worker){let q=`update_datapath_${this.messageIdCounter++}`;return new Promise((g,E)=>{this.messageCallbacks.set(q,(F)=>{if(F.error)E(new Error(F.error));else g()}),this.worker.postMessage({type:"UPDATE_DATA_PATH",dataPath:A,messageId:q})})}}async clearCache(){if(!this.initialized||!this.worker)throw new Error("Cannot clear cache: client is not initialized");let A=`clear_cache_${this.messageIdCounter++}`;return new Promise((q,g)=>{this.messageCallbacks.set(A,(E)=>{if(E.error)g(new Error(E.error));else q()}),this.worker.postMessage({type:"CLEAR_CACHE",messageId:A})})}}function I$(A){if(!A||typeof A!=="string")return!1;if(A.trim().length===0)return!1;if(["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"].includes(A.toUpperCase()))return!1;if(/[<>:"|?*\/\\\x00-\x1f]/.test(A))return!1;if(A.endsWith(".")||A.endsWith(" "))return!1;if(A==="."||A==="..")return!1;return!0}WA({name:"XDG_CONFIG_HOME",description:"Base directory for user-specific configuration files",type:"string",default:""});WA({name:"XDG_DATA_HOME",description:"Base directory for user-specific data files",type:"string",default:""});class VU extends T${_appName;_globalConfigPath;_globalConfigFile;_localConfigFile;_globalDataPath;constructor(){super();this._appName="opentui"}get appName(){return this._appName}set appName(A){if(!I$(A))throw new Error(`Invalid app name "${A}": must be a valid directory name`);if(this._appName!==A)this._appName=A,this._globalConfigPath=void 0,this._globalConfigFile=void 0,this._localConfigFile=void 0,this._globalDataPath=void 0,this.emit("paths:changed",this.toObject())}get globalConfigPath(){if(this._globalConfigPath===void 0){let A=qQ.homedir(),g=XA.XDG_CONFIG_HOME||Qg.join(A,".config");this._globalConfigPath=Qg.join(g,this._appName)}return this._globalConfigPath}get globalConfigFile(){if(this._globalConfigFile===void 0)this._globalConfigFile=Qg.join(this.globalConfigPath,"init.ts");return this._globalConfigFile}get localConfigFile(){if(this._localConfigFile===void 0)this._localConfigFile=Qg.join(process.cwd(),`.${this._appName}.ts`);return this._localConfigFile}get globalDataPath(){if(this._globalDataPath===void 0){let A=qQ.homedir(),g=XA.XDG_DATA_HOME||Qg.join(A,".local/share");this._globalDataPath=Qg.join(g,this._appName)}return this._globalDataPath}toObject(){return{globalConfigPath:this.globalConfigPath,globalConfigFile:this.globalConfigFile,localConfigFile:this.localConfigFile,globalDataPath:this.globalDataPath}}}function mQ(){return rg("data-paths-opentui",()=>new VU)}function fQ(){let A=mQ(),q={dataPath:A.globalDataPath};return rg("tree-sitter-client",()=>{let g=new LU(q);return A.on("paths:changed",(E)=>{g.setDataPath(E.globalDataPath)}),g})}class cQ{undoStack=[];redoStack=[];saveSnapshot(A,q){let g={extmarks:new Map(Array.from(A.entries()).map(([E,F])=>[E,{...F}])),nextId:q};this.undoStack.push(g),this.redoStack=[]}undo(){if(this.undoStack.length===0)return null;return this.undoStack.pop()}redo(){if(this.redoStack.length===0)return null;return this.redoStack.pop()}pushRedo(A){this.redoStack.push(A)}pushUndo(A){this.undoStack.push(A)}clear(){this.undoStack=[],this.redoStack=[]}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}}class WU{editBuffer;editorView;extmarks=new Map;extmarksByTypeId=new Map;metadata=new Map;nextId=1;destroyed=!1;history=new cQ;typeNameToId=new Map;typeIdToName=new Map;nextTypeId=1;originalMoveCursorLeft;originalMoveCursorRight;originalSetCursorByOffset;originalMoveUpVisual;originalMoveDownVisual;originalDeleteCharBackward;originalDeleteChar;originalInsertText;originalInsertChar;originalDeleteRange;originalSetText;originalReplaceText;originalClear;originalNewLine;originalDeleteLine;originalEditorViewDeleteSelectedText;originalUndo;originalRedo;constructor(A,q){this.editBuffer=A,this.editorView=q,this.originalMoveCursorLeft=A.moveCursorLeft.bind(A),this.originalMoveCursorRight=A.moveCursorRight.bind(A),this.originalSetCursorByOffset=A.setCursorByOffset.bind(A),this.originalMoveUpVisual=q.moveUpVisual.bind(q),this.originalMoveDownVisual=q.moveDownVisual.bind(q),this.originalDeleteCharBackward=A.deleteCharBackward.bind(A),this.originalDeleteChar=A.deleteChar.bind(A),this.originalInsertText=A.insertText.bind(A),this.originalInsertChar=A.insertChar.bind(A),this.originalDeleteRange=A.deleteRange.bind(A),this.originalSetText=A.setText.bind(A),this.originalReplaceText=A.replaceText.bind(A),this.originalClear=A.clear.bind(A),this.originalNewLine=A.newLine.bind(A),this.originalDeleteLine=A.deleteLine.bind(A),this.originalEditorViewDeleteSelectedText=q.deleteSelectedText.bind(q),this.originalUndo=A.undo.bind(A),this.originalRedo=A.redo.bind(A),this.wrapCursorMovement(),this.wrapDeletion(),this.wrapInsertion(),this.wrapEditorViewDeleteSelectedText(),this.wrapUndoRedo(),this.setupContentChangeListener()}wrapCursorMovement(){this.editBuffer.moveCursorLeft=()=>{if(this.destroyed){this.originalMoveCursorLeft();return}let A=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalMoveCursorLeft();return}let g=A-1;if(g<0){this.originalMoveCursorLeft();return}let E=this.findVirtualExtmarkContaining(g);if(E&&A>=E.end){this.editBuffer.setCursorByOffset(E.start-1);return}this.originalMoveCursorLeft()},this.editBuffer.moveCursorRight=()=>{if(this.destroyed){this.originalMoveCursorRight();return}let A=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalMoveCursorRight();return}let g=A+1,E=this.editBuffer.getText().length;if(g>E){this.originalMoveCursorRight();return}let F=this.findVirtualExtmarkContaining(g);if(F&&A<=F.start){this.editBuffer.setCursorByOffset(F.end);return}this.originalMoveCursorRight()},this.editorView.moveUpVisual=()=>{if(this.destroyed){this.originalMoveUpVisual();return}if(this.editorView.hasSelection()){this.originalMoveUpVisual();return}let q=this.editorView.getVisualCursor().offset;this.originalMoveUpVisual();let g=this.editorView.getVisualCursor().offset,E=this.findVirtualExtmarkContaining(g);if(E){let F=g-E.start,K=E.end-g;if(F<K)this.editorView.setCursorByOffset(E.start-1);else this.editorView.setCursorByOffset(E.end)}},this.editorView.moveDownVisual=()=>{if(this.destroyed){this.originalMoveDownVisual();return}if(this.editorView.hasSelection()){this.originalMoveDownVisual();return}this.originalMoveDownVisual();let q=this.editorView.getVisualCursor().offset,g=this.findVirtualExtmarkContaining(q);if(g){let E=q-g.start,F=g.end-q;if(E<F)this.editorView.setCursorByOffset(g.start-1);else this.editorView.setCursorByOffset(g.end)}},this.editBuffer.setCursorByOffset=(A)=>{if(this.destroyed){this.originalSetCursorByOffset(A);return}let q=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalSetCursorByOffset(A);return}if(A>q){let F=this.findVirtualExtmarkContaining(A);if(F&&q<=F.start){this.originalSetCursorByOffset(F.end);return}}else for(let F of this.extmarks.values())if(F.virtual&&q>=F.end&&A<F.end&&A>=F.start){this.originalSetCursorByOffset(F.start-1);return}this.originalSetCursorByOffset(A)}}wrapDeletion(){this.editBuffer.deleteCharBackward=()=>{if(this.destroyed){this.originalDeleteCharBackward();return}this.saveSnapshot();let A=this.editorView.getVisualCursor().offset,q=this.editorView.hasSelection();if(A===0){this.originalDeleteCharBackward();return}if(q){this.originalDeleteCharBackward();return}let g=A-1,E=this.findVirtualExtmarkContaining(g);if(E&&A===E.end){let F=this.offsetToPosition(E.start),K=this.offsetToPosition(E.end),Z=E.start,j=E.end-E.start;this.deleteExtmarkById(E.id),this.originalDeleteRange(F.row,F.col,K.row,K.col),this.adjustExtmarksAfterDeletion(Z,j),this.updateHighlights();return}this.originalDeleteCharBackward(),this.adjustExtmarksAfterDeletion(g,1)},this.editBuffer.deleteChar=()=>{if(this.destroyed){this.originalDeleteChar();return}this.saveSnapshot();let A=this.editorView.getVisualCursor().offset,q=this.editBuffer.getText().length,g=this.editorView.hasSelection();if(A>=q){this.originalDeleteChar();return}if(g){this.originalDeleteChar();return}let E=A,F=this.findVirtualExtmarkContaining(E);if(F&&A===F.start){let K=this.offsetToPosition(F.start),Z=this.offsetToPosition(F.end),j=F.start,U=F.end-F.start;this.deleteExtmarkById(F.id),this.originalDeleteRange(K.row,K.col,Z.row,Z.col),this.adjustExtmarksAfterDeletion(j,U),this.updateHighlights();return}this.originalDeleteChar(),this.adjustExtmarksAfterDeletion(E,1)},this.editBuffer.deleteRange=(A,q,g,E)=>{if(this.destroyed){this.originalDeleteRange(A,q,g,E);return}this.saveSnapshot();let F=this.positionToOffset(A,q),Z=this.positionToOffset(g,E)-F;this.originalDeleteRange(A,q,g,E),this.adjustExtmarksAfterDeletion(F,Z)},this.editBuffer.deleteLine=()=>{if(this.destroyed){this.originalDeleteLine();return}this.saveSnapshot();let A=this.editBuffer.getText(),q=this.editorView.getVisualCursor().offset,g=0;for(let K=q-1;K>=0;K--)if(A[K]===`
|
|
8
8
|
`){g=K+1;break}let E=A.length;for(let K=q;K<A.length;K++)if(A[K]===`
|
|
9
9
|
`){E=K+1;break}let F=E-g;this.originalDeleteLine(),this.adjustExtmarksAfterDeletion(g,F)}}wrapInsertion(){this.editBuffer.insertText=(A)=>{if(this.destroyed){this.originalInsertText(A);return}this.saveSnapshot();let q=this.editorView.getVisualCursor().offset;this.originalInsertText(A),this.adjustExtmarksAfterInsertion(q,A.length)},this.editBuffer.insertChar=(A)=>{if(this.destroyed){this.originalInsertChar(A);return}this.saveSnapshot();let q=this.editorView.getVisualCursor().offset;this.originalInsertChar(A),this.adjustExtmarksAfterInsertion(q,1)},this.editBuffer.setText=(A)=>{if(this.destroyed){this.originalSetText(A);return}this.clear(),this.originalSetText(A)},this.editBuffer.replaceText=(A)=>{if(this.destroyed){this.originalReplaceText(A);return}this.saveSnapshot(),this.clear(),this.originalReplaceText(A)},this.editBuffer.clear=()=>{if(this.destroyed){this.originalClear();return}this.saveSnapshot(),this.clear(),this.originalClear()},this.editBuffer.newLine=()=>{if(this.destroyed){this.originalNewLine();return}this.saveSnapshot();let A=this.editorView.getVisualCursor().offset;this.originalNewLine(),this.adjustExtmarksAfterInsertion(A,1)}}wrapEditorViewDeleteSelectedText(){this.editorView.deleteSelectedText=()=>{if(this.destroyed){this.originalEditorViewDeleteSelectedText();return}this.saveSnapshot();let A=this.editorView.getSelection();if(!A){this.originalEditorViewDeleteSelectedText();return}let q=Math.min(A.start,A.end),g=Math.abs(A.end-A.start);if(this.originalEditorViewDeleteSelectedText(),g>0)this.adjustExtmarksAfterDeletion(q,g)}}setupContentChangeListener(){this.editBuffer.on("content-changed",()=>{if(this.destroyed)return;this.updateHighlights()})}deleteExtmarkById(A){let q=this.extmarks.get(A);if(q)this.extmarks.delete(A),this.extmarksByTypeId.get(q.typeId)?.delete(A),this.metadata.delete(A)}findVirtualExtmarkContaining(A){for(let q of this.extmarks.values())if(q.virtual&&A>=q.start&&A<q.end)return q;return null}adjustExtmarksAfterInsertion(A,q){for(let g of this.extmarks.values())if(g.start>=A)g.start+=q,g.end+=q;else if(g.end>A)g.end+=q;this.updateHighlights()}adjustExtmarksAfterDeletion(A,q){let g=[];for(let E of this.extmarks.values()){if(E.end<=A)continue;if(E.start>=A+q)E.start-=q,E.end-=q;else if(E.start>=A&&E.end<=A+q)g.push(E.id);else if(E.start<A&&E.end>A+q)E.end-=q;else if(E.start<A&&E.end>A)E.end-=Math.min(E.end,A+q)-A;else if(E.start<A+q&&E.end>A+q){let F=A+q-E.start;E.start=A,E.end-=q}}for(let E of g)this.deleteExtmarkById(E);this.updateHighlights()}offsetToPosition(A){let q=this.editBuffer.offsetToPosition(A);if(!q)return{row:0,col:0};return q}positionToOffset(A,q){return this.editBuffer.positionToOffset(A,q)}updateHighlights(){this.editBuffer.clearAllHighlights();for(let A of this.extmarks.values())if(A.styleId!==void 0){let q=this.offsetExcludingNewlines(A.start),g=this.offsetExcludingNewlines(A.end);this.editBuffer.addHighlightByCharRange({start:q,end:g,styleId:A.styleId,priority:A.priority??0,hlRef:A.id})}}offsetExcludingNewlines(A){let q=this.editBuffer.getText(),g=0,E=0,F=0;while(F<q.length&&g<A)if(q[F]===`
|
|
10
10
|
`)g++,E++,F++;else{let K=F;while(K<q.length&&q[K]!==`
|
|
11
|
-
`)K++;let Z=q.substring(F,K),j=Bun.stringWidth(Z);if(g+j<A)g+=j,F=K;else{for(let U=F;U<K&&g<A;U++){let O=Bun.stringWidth(q[U]);g+=O}break}}return A-E}create(A){if(this.destroyed)throw Error("ExtmarksController is destroyed");let q=this.nextId++,g=A.typeId??0,E={id:q,start:A.start,end:A.end,virtual:A.virtual??!1,styleId:A.styleId,priority:A.priority,data:A.data,typeId:g};if(this.extmarks.set(q,E),!this.extmarksByTypeId.has(g))this.extmarksByTypeId.set(g,new Set);if(this.extmarksByTypeId.get(g).add(q),A.metadata!==void 0)this.metadata.set(q,A.metadata);return this.updateHighlights(),q}delete(A){if(this.destroyed)throw Error("ExtmarksController is destroyed");if(!this.extmarks.get(A))return!1;return this.deleteExtmarkById(A),this.updateHighlights(),!0}get(A){if(this.destroyed)return null;return this.extmarks.get(A)??null}getAll(){if(this.destroyed)return[];return Array.from(this.extmarks.values())}getVirtual(){if(this.destroyed)return[];return Array.from(this.extmarks.values()).filter((A)=>A.virtual)}getAtOffset(A){if(this.destroyed)return[];return Array.from(this.extmarks.values()).filter((q)=>A>=q.start&&A<q.end)}getAllForTypeId(A){if(this.destroyed)return[];let q=this.extmarksByTypeId.get(A);if(!q)return[];return Array.from(q).map((g)=>this.extmarks.get(g)).filter((g)=>g!==void 0)}clear(){if(this.destroyed)return;this.extmarks.clear(),this.extmarksByTypeId.clear(),this.metadata.clear(),this.updateHighlights()}saveSnapshot(){this.history.saveSnapshot(this.extmarks,this.nextId)}restoreSnapshot(A){this.extmarks=new Map(Array.from(A.extmarks.entries()).map(([q,g])=>[q,{...g}])),this.nextId=A.nextId,this.updateHighlights()}wrapUndoRedo(){this.editBuffer.undo=()=>{if(this.destroyed)return this.originalUndo();if(!this.history.canUndo())return this.originalUndo();let A={extmarks:new Map(Array.from(this.extmarks.entries()).map(([g,E])=>[g,{...E}])),nextId:this.nextId};this.history.pushRedo(A);let q=this.history.undo();return this.restoreSnapshot(q),this.originalUndo()},this.editBuffer.redo=()=>{if(this.destroyed)return this.originalRedo();if(!this.history.canRedo())return this.originalRedo();let A={extmarks:new Map(Array.from(this.extmarks.entries()).map(([g,E])=>[g,{...E}])),nextId:this.nextId};this.history.pushUndo(A);let q=this.history.redo();return this.restoreSnapshot(q),this.originalRedo()}}registerType(A){if(this.destroyed)throw Error("ExtmarksController is destroyed");let q=this.typeNameToId.get(A);if(q!==void 0)return q;let g=this.nextTypeId++;return this.typeNameToId.set(A,g),this.typeIdToName.set(g,A),g}getTypeId(A){if(this.destroyed)return null;return this.typeNameToId.get(A)??null}getTypeName(A){if(this.destroyed)return null;return this.typeIdToName.get(A)??null}getMetadataFor(A){if(this.destroyed)return;return this.metadata.get(A)}destroy(){if(this.destroyed)return;this.editBuffer.moveCursorLeft=this.originalMoveCursorLeft,this.editBuffer.moveCursorRight=this.originalMoveCursorRight,this.editBuffer.setCursorByOffset=this.originalSetCursorByOffset,this.editorView.moveUpVisual=this.originalMoveUpVisual,this.editorView.moveDownVisual=this.originalMoveDownVisual,this.editBuffer.deleteCharBackward=this.originalDeleteCharBackward,this.editBuffer.deleteChar=this.originalDeleteChar,this.editBuffer.insertText=this.originalInsertText,this.editBuffer.insertChar=this.originalInsertChar,this.editBuffer.deleteRange=this.originalDeleteRange,this.editBuffer.setText=this.originalSetText,this.editBuffer.replaceText=this.originalReplaceText,this.editBuffer.clear=this.originalClear,this.editBuffer.newLine=this.originalNewLine,this.editBuffer.deleteLine=this.originalDeleteLine,this.editorView.deleteSelectedText=this.originalEditorViewDeleteSelectedText,this.editBuffer.undo=this.originalUndo,this.editBuffer.redo=this.originalRedo,this.extmarks.clear(),this.extmarksByTypeId.clear(),this.metadata.clear(),this.typeNameToId.clear(),this.typeIdToName.clear(),this.history.clear(),this.destroyed=!0}}function ZQ(A,q){return new qU(A,q)}var bK=/\x1b]4;(\d+);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g,HY=/\x1b](\d+);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g;function Rj(A){let q=parseInt(A,16),g=(1<<4*A.length)-1;return Math.round(q/g*255).toString(16).padStart(2,"0")}function LY(A,q,g,E){if(E)return`#${E.toLowerCase()}`;if(A&&q&&g)return`#${Rj(A)}${Rj(q)}${Rj(g)}`;return"#000000"}function u_(A){return`\x1BPtmux;${A.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`}class gU{stdin;stdout;writeFn;activeListeners=[];activeTimers=[];inLegacyTmux;constructor(A,q,g,E){this.stdin=A,this.stdout=q,this.writeFn=g||((F)=>q.write(F)),this.inLegacyTmux=E??!1}writeOsc(A){let q=this.inLegacyTmux?u_(A):A;return this.writeFn(q)}cleanup(){for(let{event:A,handler:q}of this.activeListeners)this.stdin.removeListener(A,q);this.activeListeners=[];for(let A of this.activeTimers)clearTimeout(A);this.activeTimers=[]}async detectOSCSupport(A=300){let q=this.stdout,g=this.stdin;if(!q.isTTY||!g.isTTY)return!1;return new Promise((E)=>{let F="",K=(O)=>{if(F+=O.toString(),bK.lastIndex=0,bK.test(F))j(),E(!0)},Z=()=>{j(),E(!1)},j=()=>{clearTimeout(U),g.removeListener("data",K);let O=this.activeListeners.findIndex((M)=>M.handler===K);if(O!==-1)this.activeListeners.splice(O,1);let Y=this.activeTimers.indexOf(U);if(Y!==-1)this.activeTimers.splice(Y,1)},U=setTimeout(Z,A);this.activeTimers.push(U),g.on("data",K),this.activeListeners.push({event:"data",handler:K}),this.writeOsc("\x1B]4;0;?\x07")})}async queryPalette(A,q=1200){let g=this.stdout,E=this.stdin,F=new Map;if(A.forEach((K)=>F.set(K,null)),!g.isTTY||!E.isTTY)return F;return new Promise((K)=>{let Z="",j=Date.now(),U=null,O=($)=>{Z+=$.toString(),j=Date.now();let _;bK.lastIndex=0;while(_=bK.exec(Z)){let x=parseInt(_[1],10);if(F.has(x))F.set(x,LY(_[2],_[3],_[4],_[5]))}if(Z.length>8192)Z=Z.slice(-4096);if([...F.values()].filter((x)=>x!==null).length===F.size){M(),K(F);return}if(U)clearTimeout(U);if(U=setTimeout(()=>{M(),K(F)},150),U)this.activeTimers.push(U)},Y=()=>{M(),K(F)},M=()=>{if(clearTimeout(J),U)clearTimeout(U);E.removeListener("data",O);let $=this.activeListeners.findIndex((T)=>T.handler===O);if($!==-1)this.activeListeners.splice($,1);let _=this.activeTimers.indexOf(J);if(_!==-1)this.activeTimers.splice(_,1);if(U){let T=this.activeTimers.indexOf(U);if(T!==-1)this.activeTimers.splice(T,1)}},J=setTimeout(Y,q);this.activeTimers.push(J),E.on("data",O),this.activeListeners.push({event:"data",handler:O}),this.writeOsc(A.map(($)=>`\x1B]4;${$};?\x07`).join(""))})}async querySpecialColors(A=1200){let q=this.stdout,g=this.stdin,E={10:null,11:null,12:null,13:null,14:null,15:null,16:null,17:null,19:null};if(!q.isTTY||!g.isTTY)return E;return new Promise((F)=>{let K="",Z=null,j=(M)=>{K+=M.toString();let J;HY.lastIndex=0;while(J=HY.exec(K)){let _=parseInt(J[1],10);if(_ in E)E[_]=LY(J[2],J[3],J[4],J[5])}if(K.length>8192)K=K.slice(-4096);if(Object.values(E).filter((_)=>_!==null).length===Object.keys(E).length){O(),F(E);return}if(Z)clearTimeout(Z);if(Z=setTimeout(()=>{O(),F(E)},150),Z)this.activeTimers.push(Z)},U=()=>{O(),F(E)},O=()=>{if(clearTimeout(Y),Z)clearTimeout(Z);g.removeListener("data",j);let M=this.activeListeners.findIndex(($)=>$.handler===j);if(M!==-1)this.activeListeners.splice(M,1);let J=this.activeTimers.indexOf(Y);if(J!==-1)this.activeTimers.splice(J,1);if(Z){let $=this.activeTimers.indexOf(Z);if($!==-1)this.activeTimers.splice($,1)}},Y=setTimeout(U,A);this.activeTimers.push(Y),g.on("data",j),this.activeListeners.push({event:"data",handler:j}),this.writeOsc(["\x1B]10;?\x07","\x1B]11;?\x07","\x1B]12;?\x07","\x1B]13;?\x07","\x1B]14;?\x07","\x1B]15;?\x07","\x1B]16;?\x07","\x1B]17;?\x07","\x1B]19;?\x07"].join(""))})}async detect(A){let{timeout:q=5000,size:g=16}=A||{};if(!await this.detectOSCSupport())return{palette:Array(g).fill(null),defaultForeground:null,defaultBackground:null,cursorColor:null,mouseForeground:null,mouseBackground:null,tekForeground:null,tekBackground:null,highlightBackground:null,highlightForeground:null};let F=[...Array(g).keys()],[K,Z]=await Promise.all([this.queryPalette(F,q),this.querySpecialColors(q)]);return{palette:[...Array(g).keys()].map((j)=>K.get(j)??null),defaultForeground:Z[10],defaultBackground:Z[11],cursorColor:Z[12],mouseForeground:Z[13],mouseBackground:Z[14],tekForeground:Z[15],tekBackground:Z[16],highlightBackground:Z[17],highlightForeground:Z[19]}}}function jQ(A,q,g,E){return new gU(A,q,g,E)}function s_(A,q,g){let E=0;if(A===!0)E|=15;else if(Array.isArray(A)){if(A.includes("top"))E|=8;if(A.includes("right"))E|=4;if(A.includes("bottom"))E|=2;if(A.includes("left"))E|=1}if(q)E|=16;let K={left:0,center:1,right:2}[g];return E|=K<<5,E}class Og{static fbIdCounter=0;id;lib;bufferPtr;_width;_height;_widthMethod;respectAlpha=!1;_rawBuffers=null;_destroyed=!1;get ptr(){return this.bufferPtr}guard(){if(this._destroyed)throw Error(`Buffer ${this.id} is destroyed`)}get buffers(){if(this.guard(),this._rawBuffers===null){let A=this._width*this._height,q=this.lib.bufferGetCharPtr(this.bufferPtr),g=this.lib.bufferGetFgPtr(this.bufferPtr),E=this.lib.bufferGetBgPtr(this.bufferPtr),F=this.lib.bufferGetAttributesPtr(this.bufferPtr);this._rawBuffers={char:new Uint32Array(vK(q,0,A*4)),fg:new Float32Array(vK(g,0,A*4*4)),bg:new Float32Array(vK(E,0,A*4*4)),attributes:new Uint32Array(vK(F,0,A*4))}}return this._rawBuffers}constructor(A,q,g,E,F){this.id=F.id||`fb_${Og.fbIdCounter++}`,this.lib=A,this.respectAlpha=F.respectAlpha||!1,this._width=g,this._height=E,this._widthMethod=F.widthMethod||"unicode",this.bufferPtr=q}static create(A,q,g,E={}){let F=Jq(),K=E.respectAlpha||!1,Z=E.id&&E.id.trim()!==""?E.id:"unnamed buffer";return F.createOptimizedBuffer(A,q,g,K,Z)}get widthMethod(){return this._widthMethod}get width(){return this._width}get height(){return this._height}setRespectAlpha(A){this.guard(),this.lib.bufferSetRespectAlpha(this.bufferPtr,A),this.respectAlpha=A}getNativeId(){return this.guard(),this.lib.bufferGetId(this.bufferPtr)}getRealCharBytes(A=!1){this.guard();let q=this.lib.bufferGetRealCharSize(this.bufferPtr),g=new Uint8Array(q),E=this.lib.bufferWriteResolvedChars(this.bufferPtr,g,A);return g.slice(0,E)}getSpanLines(){this.guard();let{char:A,fg:q,bg:g,attributes:E}=this.buffers,F=[];for(let K=0;K<this._height;K++){let Z=[],j=null;for(let U=0;U<this._width;U++){let O=K*this._width+U,Y=A[O],M=QA.fromValues(q[O*4],q[O*4+1],q[O*4+2],q[O*4+3]),J=QA.fromValues(g[O*4],g[O*4+1],g[O*4+2],g[O*4+3]),$=E[O]&255,_=Y>0?String.fromCodePoint(Y):" ";if(j&&j.fg.equals(M)&&j.bg.equals(J)&&j.attributes===$)j.text+=_,j.width+=1;else{if(j)Z.push(j);j={text:_,fg:M,bg:J,attributes:$,width:1}}}if(j)Z.push(j);F.push({spans:Z})}return F}clear(A=QA.fromValues(0,0,0,1)){this.guard(),this.lib.bufferClear(this.bufferPtr,A)}setCell(A,q,g,E,F,K=0){this.guard(),this.lib.bufferSetCell(this.bufferPtr,A,q,g,E,F,K)}setCellWithAlphaBlending(A,q,g,E,F,K=0){this.guard(),this.lib.bufferSetCellWithAlphaBlending(this.bufferPtr,A,q,g,E,F,K)}drawText(A,q,g,E,F,K=0,Z){if(this.guard(),!Z){this.lib.bufferDrawText(this.bufferPtr,A,q,g,E,F,K);return}let{start:j,end:U}=Z,O,Y;if(Z.bgColor)O=Z.bgColor,Y=Z.fgColor||E;else{let M=F||QA.fromValues(0,0,0,0);Y=M.a>0?M:QA.fromValues(0,0,0,1),O=E}if(j>0){let M=A.slice(0,j);this.lib.bufferDrawText(this.bufferPtr,M,q,g,E,F,K)}if(U>j){let M=A.slice(j,U);this.lib.bufferDrawText(this.bufferPtr,M,q+j,g,Y,O,K)}if(U<A.length){let M=A.slice(U);this.lib.bufferDrawText(this.bufferPtr,M,q+U,g,E,F,K)}}fillRect(A,q,g,E,F){this.lib.bufferFillRect(this.bufferPtr,A,q,g,E,F)}drawFrameBuffer(A,q,g,E,F,K,Z){this.guard(),this.lib.drawFrameBuffer(this.bufferPtr,A,q,g.ptr,E,F,K,Z)}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyOptimizedBuffer(this.bufferPtr)}drawTextBuffer(A,q,g){this.guard(),this.lib.bufferDrawTextBufferView(this.bufferPtr,A.ptr,q,g)}drawEditorView(A,q,g){this.guard(),this.lib.bufferDrawEditorView(this.bufferPtr,A.ptr,q,g)}drawSuperSampleBuffer(A,q,g,E,F,K){this.guard(),this.lib.bufferDrawSuperSampleBuffer(this.bufferPtr,A,q,g,E,F,K)}drawPackedBuffer(A,q,g,E,F,K){this.guard(),this.lib.bufferDrawPackedBuffer(this.bufferPtr,A,q,g,E,F,K)}drawGrayscaleBuffer(A,q,g,E,F,K=null,Z=null){this.guard(),this.lib.bufferDrawGrayscaleBuffer(this.bufferPtr,A,q,WY(g),E,F,K,Z)}drawGrayscaleBufferSupersampled(A,q,g,E,F,K=null,Z=null){this.guard(),this.lib.bufferDrawGrayscaleBufferSupersampled(this.bufferPtr,A,q,WY(g),E,F,K,Z)}resize(A,q){if(this.guard(),this._width===A&&this._height===q)return;this._width=A,this._height=q,this._rawBuffers=null,this.lib.bufferResize(this.bufferPtr,A,q)}drawBox(A){this.guard();let q=iK(A.borderStyle,"single"),g=A.customBorderChars??dY[q],E=s_(A.border,A.shouldFill??!1,A.titleAlignment||"left");this.lib.bufferDrawBox(this.bufferPtr,A.x,A.y,A.width,A.height,g,E,A.borderColor,A.backgroundColor,A.title??null)}pushScissorRect(A,q,g,E){this.guard(),this.lib.bufferPushScissorRect(this.bufferPtr,A,q,g,E)}popScissorRect(){this.guard(),this.lib.bufferPopScissorRect(this.bufferPtr)}clearScissorRects(){this.guard(),this.lib.bufferClearScissorRects(this.bufferPtr)}pushOpacity(A){this.guard(),this.lib.bufferPushOpacity(this.bufferPtr,Math.max(0,Math.min(1,A)))}popOpacity(){this.guard(),this.lib.bufferPopOpacity(this.bufferPtr)}getCurrentOpacity(){return this.guard(),this.lib.bufferGetCurrentOpacity(this.bufferPtr)}clearOpacity(){this.guard(),this.lib.bufferClearOpacity(this.bufferPtr)}encodeUnicode(A){return this.guard(),this.lib.encodeUnicode(A,this._widthMethod)}freeUnicode(A){this.guard(),this.lib.freeUnicode(A)}drawChar(A,q,g,E,F,K=0){this.guard(),this.lib.bufferDrawChar(this.bufferPtr,A,q,g,E,F,K)}}function I6(...A){let q=A.join(" ");throw console.error("FATAL ERROR:",q),Error(q)}var BA=process.arch==="x64"||process.arch==="arm64"?8:4,yg={u8:1,bool_u8:1,bool_u32:4,u16:2,i16:2,u32:4,u64:8,f32:4,f64:8,pointer:BA,i32:4},n_=Object.keys(yg);function mK(A){return typeof A==="string"&&n_.includes(A)}var NY={...yg},r_={u8:(A,q)=>A.getUint8(q),bool_u8:(A,q)=>Boolean(A.getUint8(q)),bool_u32:(A,q)=>Boolean(A.getUint32(q,!0)),u16:(A,q)=>A.getUint16(q,!0),i16:(A,q)=>A.getInt16(q,!0),u32:(A,q)=>A.getUint32(q,!0),u64:(A,q)=>A.getBigUint64(q,!0),f32:(A,q)=>A.getFloat32(q,!0),f64:(A,q)=>A.getFloat64(q,!0),i32:(A,q)=>A.getInt32(q,!0),pointer:(A,q)=>BA===8?A.getBigUint64(q,!0):BigInt(A.getUint32(q,!0))};function xY(A){return typeof A==="object"&&A!==null&&A.__type==="objectPointer"}function TY(A,q){return A+(q-1)&~(q-1)}function IY(A){throw TypeError(`Invalid enum value: ${A}`)}function o_(A,q="u32"){let g=Object.fromEntries(Object.entries(A).map(([E,F])=>[F,E]));return{__type:"enum",type:q,to(E){return typeof E==="number"?E:A[E]??IY(String(E))},from(E){return g[E]??IY(String(E))},enum:A}}function aY(A){return typeof A==="object"&&A.__type==="enum"}function hj(A){return typeof A==="object"&&A.__type==="struct"}function a6(A){let q,g;switch(A){case"u8":q=(E,F,K)=>E.setUint8(F,K),g=(E,F)=>E.getUint8(F);break;case"bool_u8":q=(E,F,K)=>E.setUint8(F,K?1:0),g=(E,F)=>Boolean(E.getUint8(F));break;case"bool_u32":q=(E,F,K)=>E.setUint32(F,K?1:0,!0),g=(E,F)=>Boolean(E.getUint32(F,!0));break;case"u16":q=(E,F,K)=>E.setUint16(F,K,!0),g=(E,F)=>E.getUint16(F,!0);break;case"i16":q=(E,F,K)=>E.setInt16(F,K,!0),g=(E,F)=>E.getInt16(F,!0);break;case"u32":q=(E,F,K)=>E.setUint32(F,K,!0),g=(E,F)=>E.getUint32(F,!0);break;case"i32":q=(E,F,K)=>E.setInt32(F,K,!0),g=(E,F)=>E.getInt32(F,!0);break;case"u64":q=(E,F,K)=>E.setBigUint64(F,BigInt(K),!0),g=(E,F)=>E.getBigUint64(F,!0);break;case"f32":q=(E,F,K)=>E.setFloat32(F,K,!0),g=(E,F)=>E.getFloat32(F,!0);break;case"f64":q=(E,F,K)=>E.setFloat64(F,K,!0),g=(E,F)=>E.getFloat64(F,!0);break;case"pointer":q=(E,F,K)=>{BA===8?E.setBigUint64(F,K?BigInt(K):0n,!0):E.setUint32(F,K?Number(K):0,!0)},g=(E,F)=>{let K=BA===8?E.getBigUint64(F,!0):BigInt(E.getUint32(F,!0));return Number(K)};break;default:I6(`Unsupported primitive type: ${A}`)}return{pack:q,unpack:g}}var{pack:vA,unpack:N6}=a6("pointer");function e_(A){let q=new ArrayBuffer(A.length*BA),g=new DataView(q);for(let E=0;E<A.length;E++){let K=A[E]?.ptr??null;vA(g,E*BA,K)}return g}var PY=new TextEncoder,A9=new TextDecoder;function pq(A,q){let g=0,E=1,F=[],K={},Z=[],j={};for(let[J,$,_={}]of A){if(_.condition&&!_.condition())continue;let T=0,x=0,V,a,k=!1,C=null;if(mK($))T=yg[$],x=NY[$],{pack:V,unpack:a}=a6($);else if(typeof $==="string"&&$==="cstring")T=BA,x=BA,V=(R,z,n)=>{let m=n?wg(PY.encode(n+"\x00")):null;vA(R,z,m)},a=(R,z)=>{return N6(R,z)};else if(typeof $==="string"&&$==="char*")T=BA,x=BA,V=(R,z,n)=>{let m=n?wg(PY.encode(n)):null;vA(R,z,m)},a=(R,z)=>{return N6(R,z)},k=!0;else if(aY($)){let R=$.type;T=yg[R],x=NY[R];let{pack:z}=a6(R);V=(n,m,gA)=>{let FA=$.to(gA);z(n,m,FA)},a=(n,m)=>{let gA=r_[R](n,m);return $.from(gA)}}else if(hj($))if(_.asPointer===!0)T=BA,x=BA,V=(R,z,n,m,gA)=>{if(!n){vA(R,z,null);return}let FA=$.pack(n,gA);vA(R,z,wg(FA))},a=(R,z)=>{throw Error("Not implemented yet")};else T=$.size,x=$.align,V=(R,z,n,m,gA)=>{let FA=$.pack(n,gA),YA=new Uint8Array(FA);new Uint8Array(R.buffer).set(YA,z)},a=(R,z)=>{let n=R.buffer.slice(z,z+T);return $.unpack(n)};else if(xY($))T=BA,x=BA,V=(R,z,n)=>{let m=n?.ptr??null;if(m===void 0)console.warn(`Field '${J}' expected object with '.ptr' property, but got undefined pointer value from:`,n),vA(R,z,null);else vA(R,z,m)},a=(R,z)=>{return N6(R,z)};else if(Array.isArray($)&&$.length===1&&$[0]!==void 0){let[R]=$;T=BA,x=BA;let z;if(aY(R))z=yg[R.type],V=(m,gA,FA,YA)=>{if(!FA||FA.length===0){vA(m,gA,null);return}let PA=new ArrayBuffer(FA.length*z),bA=new DataView(PA);for(let RA=0;RA<FA.length;RA++){let Hq=R.to(FA[RA]);bA.setUint32(RA*z,Hq,!0)}vA(m,gA,wg(PA))},a=null,k=!0,C=R;else if(hj(R))z=R.size,V=(m,gA,FA,YA,PA)=>{if(!FA||FA.length===0){vA(m,gA,null);return}let bA=new ArrayBuffer(FA.length*z),RA=new DataView(bA);for(let Hq=0;Hq<FA.length;Hq++)R.packInto(FA[Hq],RA,Hq*z,PA);vA(m,gA,wg(bA))},a=(m,gA)=>{throw Error("Not implemented yet")};else if(mK(R)){z=yg[R];let{pack:m}=a6(R);V=(gA,FA,YA)=>{if(!YA||YA.length===0){vA(gA,FA,null);return}let PA=new ArrayBuffer(YA.length*z),bA=new DataView(PA);for(let RA=0;RA<YA.length;RA++)m(bA,RA*z,YA[RA]);vA(gA,FA,wg(PA))},a=null,k=!0,C=R}else if(xY(R))z=BA,V=(m,gA,FA)=>{if(!FA||FA.length===0){vA(m,gA,null);return}let YA=e_(FA);vA(m,gA,wg(YA.buffer))},a=()=>{throw Error("not implemented yet")};else throw Error(`Unsupported array element type for ${J}: ${JSON.stringify(R)}`);let n=Object.values(K).find((m)=>m.lengthOf===J);if(n&&mK(n.type)){let{pack:m}=a6(n.type);j[J]={elementSize:z,arrayOffset:g,lengthOffset:n.offset,lengthPack:m}}}else throw Error(`Unsupported field type for ${J}: ${JSON.stringify($)}`);if(g=TY(g,x),_.unpackTransform){let R=a;a=(z,n)=>_.unpackTransform(R(z,n))}if(_.packTransform){let R=V;V=(z,n,m,gA,FA)=>R(z,n,_.packTransform(m),gA,FA)}if(_.optional){let R=V;if(hj($)&&!_.asPointer)V=(z,n,m,gA,FA)=>{if(m||_.mapOptionalInline)R(z,n,m,gA,FA)};else V=(z,n,m,gA,FA)=>R(z,n,m??0,gA,FA)}if(_.lengthOf){let R=V;V=(z,n,m,gA,FA)=>{let YA=gA[_.lengthOf],PA=0;if(YA)if(typeof YA==="string")PA=Buffer.byteLength(YA);else PA=YA.length;return R(z,n,PA,gA,FA)}}let u;if(_.validate)u=Array.isArray(_.validate)?_.validate:[_.validate];let c={name:J,offset:g,size:T,align:x,validate:u,optional:!!_.optional||!!_.lengthOf||_.default!==void 0,default:_.default,pack:V,unpack:a,type:$,lengthOf:_.lengthOf};if(F.push(c),_.lengthOf)K[_.lengthOf]=c;if(k){let R=typeof $==="string"&&$==="char*"?"char*":C;if(!R)I6(`Internal error: needsLengthOf=true but def is null for ${J}`);Z.push({requester:c,def:R})}g+=T,E=Math.max(E,x)}for(let{requester:J,def:$}of Z){let _=K[J.name];if(!_){if($==="char*")continue;throw Error(`lengthOf field not found for array field ${J.name}`)}if($==="char*")J.unpack=(T,x)=>{let V=N6(T,x),a=_.unpack(T,_.offset);if(V===0)return null;let k=typeof a==="bigint"?Number(a):a;if(k===0)return"";let C=Sj(V,0,k);return A9.decode(C)};else if(mK($)){let T=yg[$],{unpack:x}=a6($);J.unpack=(V,a)=>{let k=[],C=_.unpack(V,_.offset),u=N6(V,a);if(u===0n&&C>0)throw Error(`Array field ${J.name} has null pointer but length ${C}.`);if(u===0n||C===0)return[];let c=Sj(u,0,C*T),R=new DataView(c);for(let z=0;z<C;z++)k.push(x(R,z*T));return k}}else{let T=$.type==="u32"?4:8;J.unpack=(x,V)=>{let a=[],k=_.unpack(x,_.offset),C=N6(x,V);if(C===0n&&k>0)throw Error(`Array field ${J.name} has null pointer but length ${k}.`);if(C===0n||k===0)return[];let u=Sj(C,0,k*T),c=new DataView(u);for(let R=0;R<k;R++)a.push($.from(c.getUint32(R*T,!0)));return a}}}let U=TY(g,E),O=F.map((J)=>({name:J.name,offset:J.offset,size:J.size,align:J.align,optional:J.optional,type:J.type,lengthOf:J.lengthOf})),Y=new Map(O.map((J)=>[J.name,J])),M=new Map(Object.entries(j));return{__type:"struct",size:U,align:E,hasMapValue:!!q?.mapValue,layoutByName:Y,arrayFields:M,pack(J,$){let _=new ArrayBuffer(U),T=new DataView(_),x=J;if(q?.mapValue)x=q.mapValue(J);for(let V of F){let a=x[V.name]??V.default;if(!V.optional&&a===void 0)I6(`Packing non-optional field '${V.name}' but value is undefined (and no default provided)`);if(V.validate)for(let k of V.validate)k(a,V.name,{hints:$?.validationHints,input:x});V.pack(T,V.offset,a,x,$)}return T.buffer},packInto(J,$,_,T){let x=J;if(q?.mapValue)x=q.mapValue(J);for(let V of F){let a=x[V.name]??V.default;if(!V.optional&&a===void 0)console.warn(`packInto missing value for non-optional field '${V.name}' at offset ${_+V.offset}. Writing default or zero.`);if(V.validate)for(let k of V.validate)k(a,V.name,{hints:T?.validationHints,input:x});V.pack($,_+V.offset,a,x,T)}},unpack(J){if(J.byteLength<U)I6(`Buffer size (${J.byteLength}) is smaller than struct size (${U}) for unpacking.`);let $=new DataView(J),_=q?.default?{...q.default}:{};for(let T of F){if(!T.unpack)continue;try{_[T.name]=T.unpack($,T.offset)}catch(x){throw console.error(`Error unpacking field '${T.name}' at offset ${T.offset}:`,x),x}}if(q?.reduceValue)return q.reduceValue(_);return _},packList(J,$){if(J.length===0)return new ArrayBuffer(0);let _=new ArrayBuffer(U*J.length),T=new DataView(_);for(let x=0;x<J.length;x++){let V=J[x];if(q?.mapValue)V=q.mapValue(J[x]);for(let a of F){let k=V[a.name]??a.default;if(!a.optional&&k===void 0)I6(`Packing non-optional field '${a.name}' at index ${x} but value is undefined (and no default provided)`);if(a.validate)for(let C of a.validate)C(k,a.name,{hints:$?.validationHints,input:V});a.pack(T,x*U+a.offset,k,V,$)}}return _},unpackList(J,$){if($===0)return[];let _=U*$;if(J.byteLength<_)I6(`Buffer size (${J.byteLength}) is smaller than expected size (${_}) for unpacking ${$} structs.`);let T=new DataView(J),x=[];for(let V=0;V<$;V++){let a=V*U,k=q?.default?{...q.default}:{};for(let C of F){if(!C.unpack)continue;try{k[C.name]=C.unpack(T,a+C.offset)}catch(u){throw console.error(`Error unpacking field '${C.name}' at index ${V}, offset ${a+C.offset}:`,u),u}}if(q?.reduceValue)x.push(q.reduceValue(k));else x.push(k)}return x},describe(){return O}}}var RY=(A)=>A?q9(A.buffer):null,SY=(A)=>A?QA.fromArray(new Float32Array(g9(A))):void 0,hY=pq([["text","char*"],["text_len","u64",{lengthOf:"text"}],["fg","pointer",{optional:!0,packTransform:RY,unpackTransform:SY}],["bg","pointer",{optional:!0,packTransform:RY,unpackTransform:SY}],["attributes","u32",{optional:!0}]]),fK=pq([["start","u32"],["end","u32"],["styleId","u32"],["priority","u8",{default:0}],["hlRef","u16",{default:0}]]),Lq=pq([["row","u32"],["col","u32"],["offset","u32"]]),Aq=pq([["visualRow","u32"],["visualCol","u32"],["logicalRow","u32"],["logicalCol","u32"],["offset","u32"]]),E9=o_({wcwidth:0,unicode:1},"u8"),zY=pq([["kitty_keyboard","bool_u8"],["kitty_graphics","bool_u8"],["rgb","bool_u8"],["unicode",E9],["sgr_pixels","bool_u8"],["color_scheme_updates","bool_u8"],["explicit_width","bool_u8"],["scaled_text","bool_u8"],["sixel","bool_u8"],["focus_tracking","bool_u8"],["sync","bool_u8"],["bracketed_paste","bool_u8"],["hyperlinks","bool_u8"],["explicit_cursor_positioning","bool_u8"],["term_name","char*"],["term_name_len","u64",{lengthOf:"term_name"}],["term_version","char*"],["term_version_len","u64",{lengthOf:"term_version"}],["term_from_xtversion","bool_u8"]]),BY=pq([["width","u8"],["char","u32"]]),Ug=pq([["starts",["u32"]],["startsLen","u32",{lengthOf:"starts"}],["widths",["u32"]],["widthsLen","u32",{lengthOf:"widths"}],["sources",["u32"]],["sourcesLen","u32",{lengthOf:"sources"}],["wraps",["u32"]],["wrapsLen","u32",{lengthOf:"wraps"}],["maxWidth","u32"]]),wY=pq([["lineCount","u32"],["maxWidth","u32"]]),CY=pq([["x","u32"],["y","u32"],["visible","bool_u8"],["style","u8"],["blinking","bool_u8"],["r","f32"],["g","f32"],["b","f32"],["a","f32"]]),F9=await import(`@opentui/core-${process.platform}-${process.arch}/index.ts`),VE=F9.default;if(gQ(VE))VE=VE.replace("../","");if(!i_(VE))throw Error(`opentui is not supported on the current platform: ${process.platform}-${process.arch}`);WA({name:"OTUI_DEBUG_FFI",description:"Enable debug logging for the FFI bindings.",type:"boolean",default:!1});WA({name:"OTUI_TRACE_FFI",description:"Enable tracing for the FFI bindings.",type:"boolean",default:!1});WA({name:"OPENTUI_FORCE_WCWIDTH",description:"Use wcwidth for character width calculations",type:"boolean",default:!1});WA({name:"OPENTUI_FORCE_UNICODE",description:"Force Mode 2026 Unicode support in terminal capabilities",type:"boolean",default:!1});WA({name:"OPENTUI_NO_GRAPHICS",description:"Disable Kitty graphics protocol detection",type:"boolean",default:!1});WA({name:"OPENTUI_FORCE_NOZWJ",description:"Use no_zwj width method (Unicode without ZWJ joining)",type:"boolean",default:!1});var Cg=null,x6=null,kY=!1;function K9(A){let g=l_(A||VE,{setLogCallback:{args:["ptr"],returns:"void"},setEventCallback:{args:["ptr"],returns:"void"},createRenderer:{args:["u32","u32","bool"],returns:"ptr"},destroyRenderer:{args:["ptr"],returns:"void"},setUseThread:{args:["ptr","bool"],returns:"void"},setBackgroundColor:{args:["ptr","ptr"],returns:"void"},setRenderOffset:{args:["ptr","u32"],returns:"void"},updateStats:{args:["ptr","f64","u32","f64"],returns:"void"},updateMemoryStats:{args:["ptr","u32","u32","u32"],returns:"void"},render:{args:["ptr","bool"],returns:"void"},getNextBuffer:{args:["ptr"],returns:"ptr"},getCurrentBuffer:{args:["ptr"],returns:"ptr"},queryPixelResolution:{args:["ptr"],returns:"void"},createOptimizedBuffer:{args:["u32","u32","bool","u8","ptr","usize"],returns:"ptr"},destroyOptimizedBuffer:{args:["ptr"],returns:"void"},drawFrameBuffer:{args:["ptr","i32","i32","ptr","u32","u32","u32","u32"],returns:"void"},getBufferWidth:{args:["ptr"],returns:"u32"},getBufferHeight:{args:["ptr"],returns:"u32"},bufferClear:{args:["ptr","ptr"],returns:"void"},bufferGetCharPtr:{args:["ptr"],returns:"ptr"},bufferGetFgPtr:{args:["ptr"],returns:"ptr"},bufferGetBgPtr:{args:["ptr"],returns:"ptr"},bufferGetAttributesPtr:{args:["ptr"],returns:"ptr"},bufferGetRespectAlpha:{args:["ptr"],returns:"bool"},bufferSetRespectAlpha:{args:["ptr","bool"],returns:"void"},bufferGetId:{args:["ptr","ptr","usize"],returns:"usize"},bufferGetRealCharSize:{args:["ptr"],returns:"u32"},bufferWriteResolvedChars:{args:["ptr","ptr","usize","bool"],returns:"u32"},bufferDrawText:{args:["ptr","ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferSetCellWithAlphaBlending:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferSetCell:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferFillRect:{args:["ptr","u32","u32","u32","u32","ptr"],returns:"void"},bufferResize:{args:["ptr","u32","u32"],returns:"void"},linkAlloc:{args:["ptr","u32"],returns:"u32"},linkGetUrl:{args:["u32","ptr","u32"],returns:"u32"},attributesWithLink:{args:["u32","u32"],returns:"u32"},attributesGetLinkId:{args:["u32"],returns:"u32"},resizeRenderer:{args:["ptr","u32","u32"],returns:"void"},setCursorPosition:{args:["ptr","i32","i32","bool"],returns:"void"},setCursorStyle:{args:["ptr","ptr","u32","bool"],returns:"void"},setCursorColor:{args:["ptr","ptr"],returns:"void"},getCursorState:{args:["ptr","ptr"],returns:"void"},setDebugOverlay:{args:["ptr","bool","u8"],returns:"void"},clearTerminal:{args:["ptr"],returns:"void"},setTerminalTitle:{args:["ptr","ptr","usize"],returns:"void"},bufferDrawSuperSampleBuffer:{args:["ptr","u32","u32","ptr","usize","u8","u32"],returns:"void"},bufferDrawPackedBuffer:{args:["ptr","ptr","usize","u32","u32","u32","u32"],returns:"void"},bufferDrawGrayscaleBuffer:{args:["ptr","i32","i32","ptr","u32","u32","ptr","ptr"],returns:"void"},bufferDrawGrayscaleBufferSupersampled:{args:["ptr","i32","i32","ptr","u32","u32","ptr","ptr"],returns:"void"},bufferDrawBox:{args:["ptr","i32","i32","u32","u32","ptr","u32","ptr","ptr","ptr","u32"],returns:"void"},bufferPushScissorRect:{args:["ptr","i32","i32","u32","u32"],returns:"void"},bufferPopScissorRect:{args:["ptr"],returns:"void"},bufferClearScissorRects:{args:["ptr"],returns:"void"},bufferPushOpacity:{args:["ptr","f32"],returns:"void"},bufferPopOpacity:{args:["ptr"],returns:"void"},bufferGetCurrentOpacity:{args:["ptr"],returns:"f32"},bufferClearOpacity:{args:["ptr"],returns:"void"},addToHitGrid:{args:["ptr","i32","i32","u32","u32","u32"],returns:"void"},clearCurrentHitGrid:{args:["ptr"],returns:"void"},hitGridPushScissorRect:{args:["ptr","i32","i32","u32","u32"],returns:"void"},hitGridPopScissorRect:{args:["ptr"],returns:"void"},hitGridClearScissorRects:{args:["ptr"],returns:"void"},addToCurrentHitGridClipped:{args:["ptr","i32","i32","u32","u32","u32"],returns:"void"},checkHit:{args:["ptr","u32","u32"],returns:"u32"},getHitGridDirty:{args:["ptr"],returns:"bool"},dumpHitGrid:{args:["ptr"],returns:"void"},dumpBuffers:{args:["ptr","i64"],returns:"void"},dumpStdoutBuffer:{args:["ptr","i64"],returns:"void"},enableMouse:{args:["ptr","bool"],returns:"void"},disableMouse:{args:["ptr"],returns:"void"},enableKittyKeyboard:{args:["ptr","u8"],returns:"void"},disableKittyKeyboard:{args:["ptr"],returns:"void"},setKittyKeyboardFlags:{args:["ptr","u8"],returns:"void"},getKittyKeyboardFlags:{args:["ptr"],returns:"u8"},setupTerminal:{args:["ptr","bool"],returns:"void"},suspendRenderer:{args:["ptr"],returns:"void"},resumeRenderer:{args:["ptr"],returns:"void"},writeOut:{args:["ptr","ptr","u64"],returns:"void"},createTextBuffer:{args:["u8"],returns:"ptr"},destroyTextBuffer:{args:["ptr"],returns:"void"},textBufferGetLength:{args:["ptr"],returns:"u32"},textBufferGetByteSize:{args:["ptr"],returns:"u32"},textBufferReset:{args:["ptr"],returns:"void"},textBufferClear:{args:["ptr"],returns:"void"},textBufferSetDefaultFg:{args:["ptr","ptr"],returns:"void"},textBufferSetDefaultBg:{args:["ptr","ptr"],returns:"void"},textBufferSetDefaultAttributes:{args:["ptr","ptr"],returns:"void"},textBufferResetDefaults:{args:["ptr"],returns:"void"},textBufferGetTabWidth:{args:["ptr"],returns:"u8"},textBufferSetTabWidth:{args:["ptr","u8"],returns:"void"},textBufferRegisterMemBuffer:{args:["ptr","ptr","usize","bool"],returns:"u16"},textBufferReplaceMemBuffer:{args:["ptr","u8","ptr","usize","bool"],returns:"bool"},textBufferClearMemRegistry:{args:["ptr"],returns:"void"},textBufferSetTextFromMem:{args:["ptr","u8"],returns:"void"},textBufferAppend:{args:["ptr","ptr","usize"],returns:"void"},textBufferAppendFromMemId:{args:["ptr","u8"],returns:"void"},textBufferLoadFile:{args:["ptr","ptr","usize"],returns:"bool"},textBufferSetStyledText:{args:["ptr","ptr","usize"],returns:"void"},textBufferGetLineCount:{args:["ptr"],returns:"u32"},textBufferGetPlainText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferAddHighlightByCharRange:{args:["ptr","ptr"],returns:"void"},textBufferAddHighlight:{args:["ptr","u32","ptr"],returns:"void"},textBufferRemoveHighlightsByRef:{args:["ptr","u16"],returns:"void"},textBufferClearLineHighlights:{args:["ptr","u32"],returns:"void"},textBufferClearAllHighlights:{args:["ptr"],returns:"void"},textBufferSetSyntaxStyle:{args:["ptr","ptr"],returns:"void"},textBufferGetLineHighlightsPtr:{args:["ptr","u32","ptr"],returns:"ptr"},textBufferFreeLineHighlights:{args:["ptr","usize"],returns:"void"},textBufferGetHighlightCount:{args:["ptr"],returns:"u32"},textBufferGetTextRange:{args:["ptr","u32","u32","ptr","usize"],returns:"usize"},textBufferGetTextRangeByCoords:{args:["ptr","u32","u32","u32","u32","ptr","usize"],returns:"usize"},createTextBufferView:{args:["ptr"],returns:"ptr"},destroyTextBufferView:{args:["ptr"],returns:"void"},textBufferViewSetSelection:{args:["ptr","u32","u32","ptr","ptr"],returns:"void"},textBufferViewResetSelection:{args:["ptr"],returns:"void"},textBufferViewGetSelectionInfo:{args:["ptr"],returns:"u64"},textBufferViewSetLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr"],returns:"bool"},textBufferViewUpdateSelection:{args:["ptr","u32","ptr","ptr"],returns:"void"},textBufferViewUpdateLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr"],returns:"bool"},textBufferViewResetLocalSelection:{args:["ptr"],returns:"void"},textBufferViewSetWrapWidth:{args:["ptr","u32"],returns:"void"},textBufferViewSetWrapMode:{args:["ptr","u8"],returns:"void"},textBufferViewSetViewportSize:{args:["ptr","u32","u32"],returns:"void"},textBufferViewSetViewport:{args:["ptr","u32","u32","u32","u32"],returns:"void"},textBufferViewGetVirtualLineCount:{args:["ptr"],returns:"u32"},textBufferViewGetLineInfoDirect:{args:["ptr","ptr"],returns:"void"},textBufferViewGetLogicalLineInfoDirect:{args:["ptr","ptr"],returns:"void"},textBufferViewGetSelectedText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferViewGetPlainText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferViewSetTabIndicator:{args:["ptr","u32"],returns:"void"},textBufferViewSetTabIndicatorColor:{args:["ptr","ptr"],returns:"void"},textBufferViewSetTruncate:{args:["ptr","bool"],returns:"void"},textBufferViewMeasureForDimensions:{args:["ptr","u32","u32","ptr"],returns:"bool"},bufferDrawTextBufferView:{args:["ptr","ptr","i32","i32"],returns:"void"},bufferDrawEditorView:{args:["ptr","ptr","i32","i32"],returns:"void"},createEditorView:{args:["ptr","u32","u32"],returns:"ptr"},destroyEditorView:{args:["ptr"],returns:"void"},editorViewSetViewportSize:{args:["ptr","u32","u32"],returns:"void"},editorViewSetViewport:{args:["ptr","u32","u32","u32","u32","bool"],returns:"void"},editorViewGetViewport:{args:["ptr","ptr","ptr","ptr","ptr"],returns:"void"},editorViewSetScrollMargin:{args:["ptr","f32"],returns:"void"},editorViewSetWrapMode:{args:["ptr","u8"],returns:"void"},editorViewGetVirtualLineCount:{args:["ptr"],returns:"u32"},editorViewGetTotalVirtualLineCount:{args:["ptr"],returns:"u32"},editorViewGetTextBufferView:{args:["ptr"],returns:"ptr"},editorViewGetLineInfoDirect:{args:["ptr","ptr"],returns:"void"},editorViewGetLogicalLineInfoDirect:{args:["ptr","ptr"],returns:"void"},createEditBuffer:{args:["u8"],returns:"ptr"},destroyEditBuffer:{args:["ptr"],returns:"void"},editBufferSetText:{args:["ptr","ptr","usize"],returns:"void"},editBufferSetTextFromMem:{args:["ptr","u8"],returns:"void"},editBufferReplaceText:{args:["ptr","ptr","usize"],returns:"void"},editBufferReplaceTextFromMem:{args:["ptr","u8"],returns:"void"},editBufferGetText:{args:["ptr","ptr","usize"],returns:"usize"},editBufferInsertChar:{args:["ptr","ptr","usize"],returns:"void"},editBufferInsertText:{args:["ptr","ptr","usize"],returns:"void"},editBufferDeleteChar:{args:["ptr"],returns:"void"},editBufferDeleteCharBackward:{args:["ptr"],returns:"void"},editBufferDeleteRange:{args:["ptr","u32","u32","u32","u32"],returns:"void"},editBufferNewLine:{args:["ptr"],returns:"void"},editBufferDeleteLine:{args:["ptr"],returns:"void"},editBufferMoveCursorLeft:{args:["ptr"],returns:"void"},editBufferMoveCursorRight:{args:["ptr"],returns:"void"},editBufferMoveCursorUp:{args:["ptr"],returns:"void"},editBufferMoveCursorDown:{args:["ptr"],returns:"void"},editBufferGotoLine:{args:["ptr","u32"],returns:"void"},editBufferSetCursor:{args:["ptr","u32","u32"],returns:"void"},editBufferSetCursorToLineCol:{args:["ptr","u32","u32"],returns:"void"},editBufferSetCursorByOffset:{args:["ptr","u32"],returns:"void"},editBufferGetCursorPosition:{args:["ptr","ptr"],returns:"void"},editBufferGetId:{args:["ptr"],returns:"u16"},editBufferGetTextBuffer:{args:["ptr"],returns:"ptr"},editBufferDebugLogRope:{args:["ptr"],returns:"void"},editBufferUndo:{args:["ptr","ptr","usize"],returns:"usize"},editBufferRedo:{args:["ptr","ptr","usize"],returns:"usize"},editBufferCanUndo:{args:["ptr"],returns:"bool"},editBufferCanRedo:{args:["ptr"],returns:"bool"},editBufferClearHistory:{args:["ptr"],returns:"void"},editBufferClear:{args:["ptr"],returns:"void"},editBufferGetNextWordBoundary:{args:["ptr","ptr"],returns:"void"},editBufferGetPrevWordBoundary:{args:["ptr","ptr"],returns:"void"},editBufferGetEOL:{args:["ptr","ptr"],returns:"void"},editBufferOffsetToPosition:{args:["ptr","u32","ptr"],returns:"bool"},editBufferPositionToOffset:{args:["ptr","u32","u32"],returns:"u32"},editBufferGetLineStartOffset:{args:["ptr","u32"],returns:"u32"},editBufferGetTextRange:{args:["ptr","u32","u32","ptr","usize"],returns:"usize"},editBufferGetTextRangeByCoords:{args:["ptr","u32","u32","u32","u32","ptr","usize"],returns:"usize"},editorViewSetSelection:{args:["ptr","u32","u32","ptr","ptr"],returns:"void"},editorViewResetSelection:{args:["ptr"],returns:"void"},editorViewGetSelection:{args:["ptr"],returns:"u64"},editorViewSetLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr","bool","bool"],returns:"bool"},editorViewUpdateSelection:{args:["ptr","u32","ptr","ptr"],returns:"void"},editorViewUpdateLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr","bool","bool"],returns:"bool"},editorViewResetLocalSelection:{args:["ptr"],returns:"void"},editorViewGetSelectedTextBytes:{args:["ptr","ptr","usize"],returns:"usize"},editorViewGetCursor:{args:["ptr","ptr","ptr"],returns:"void"},editorViewGetText:{args:["ptr","ptr","usize"],returns:"usize"},editorViewGetVisualCursor:{args:["ptr","ptr"],returns:"void"},editorViewMoveUpVisual:{args:["ptr"],returns:"void"},editorViewMoveDownVisual:{args:["ptr"],returns:"void"},editorViewDeleteSelectedText:{args:["ptr"],returns:"void"},editorViewSetCursorByOffset:{args:["ptr","u32"],returns:"void"},editorViewGetNextWordBoundary:{args:["ptr","ptr"],returns:"void"},editorViewGetPrevWordBoundary:{args:["ptr","ptr"],returns:"void"},editorViewGetEOL:{args:["ptr","ptr"],returns:"void"},editorViewGetVisualSOL:{args:["ptr","ptr"],returns:"void"},editorViewGetVisualEOL:{args:["ptr","ptr"],returns:"void"},editorViewSetPlaceholderStyledText:{args:["ptr","ptr","usize"],returns:"void"},editorViewSetTabIndicator:{args:["ptr","u32"],returns:"void"},editorViewSetTabIndicatorColor:{args:["ptr","ptr"],returns:"void"},getArenaAllocatedBytes:{args:[],returns:"usize"},createSyntaxStyle:{args:[],returns:"ptr"},destroySyntaxStyle:{args:["ptr"],returns:"void"},syntaxStyleRegister:{args:["ptr","ptr","usize","ptr","ptr","u8"],returns:"u32"},syntaxStyleResolveByName:{args:["ptr","ptr","usize"],returns:"u32"},syntaxStyleGetStyleCount:{args:["ptr"],returns:"usize"},getTerminalCapabilities:{args:["ptr","ptr"],returns:"void"},processCapabilityResponse:{args:["ptr","ptr","usize"],returns:"void"},encodeUnicode:{args:["ptr","usize","ptr","ptr","u8"],returns:"bool"},freeUnicode:{args:["ptr","usize"],returns:"void"},bufferDrawChar:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"}});if(XA.OTUI_DEBUG_FFI||XA.OTUI_TRACE_FFI)return{symbols:Z9(g.symbols)};return g}function Z9(A){if(!Cg)Cg={};if(XA.OTUI_DEBUG_FFI&&!x6){let K=`ffi_otui_debug_${new Date().toISOString().replace(/[:.]/g,"-").replace(/T/,"_").split("Z")[0]}.log`;x6=Bun.file(K).writer()}let q={},g=!1;if(Object.entries(A).forEach(([E,F])=>{q[E]=F}),XA.OTUI_DEBUG_FFI&&x6){let E=x6,F=(K)=>{let Z=new TextEncoder().encode(K+`
|
|
12
|
-
`);E.write(Z),E.flush()};Object.entries(A).forEach(([K,Z])=>{if(typeof Z==="function")q[K]=(...j)=>{F(`${K}(${j.map((
|
|
13
|
-
--- OpenTUI FFI Call Performance ---`),F.push("Sorted by total time spent (descending)"),F.push("-------------------------------------------------------------------------------------------------------------------------"),E.length===0)F.push("No trace data collected or all symbols had zero calls.");else{let
|
|
14
|
-
`);console.log(K);try{let U=`ffi_otui_trace_${new Date().toISOString().replace(/[:.]/g,"-").replace(/T/,"_").split("Z")[0]}.log`;Bun.write(U,K)}catch(Z){console.error("Failed to write FFI trace file:",Z)}}});return q}var UQ;((A)=>{A[A.Error=0]="Error",A[A.Warn=1]="Warn",A[A.Info=2]="Info",A[A.Debug=3]="Debug"})(UQ||={});class EU{opentui;encoder=new TextEncoder;decoder=new TextDecoder;logCallbackWrapper;eventCallbackWrapper;_nativeEvents=new t_;_anyEventHandlers=[];constructor(A){this.opentui=K9(A),this.setupLogging(),this.setupEventBus()}setupLogging(){if(this.logCallbackWrapper)return;let A=new VY((q,g,E)=>{try{let F=typeof E==="bigint"?Number(E):E;if(F===0||!g)return;let K=XE(g,0,F),Z=new Uint8Array(K),j=this.decoder.decode(Z);switch(q){case 0:console.error(j);break;case 1:console.warn(j);break;case 2:console.info(j);break;case 3:console.debug(j);break;default:console.log(j)}}catch(F){console.error("Error in Zig log callback:",F)}},{args:["u8","ptr","usize"],returns:"void"});if(this.logCallbackWrapper=A,!A.ptr)throw Error("Failed to create log callback");this.setLogCallback(A.ptr)}setLogCallback(A){this.opentui.symbols.setLogCallback(A)}setupEventBus(){if(this.eventCallbackWrapper)return;let A=new VY((q,g,E,F)=>{try{let K=typeof g==="bigint"?Number(g):g,Z=typeof F==="bigint"?Number(F):F;if(K===0||!q)return;let j=XE(q,0,K),U=new Uint8Array(j),O=this.decoder.decode(U),Y;if(Z>0&&E)Y=XE(E,0,Z).slice();else Y=new ArrayBuffer(0);queueMicrotask(()=>{this._nativeEvents.emit(O,Y);for(let M of this._anyEventHandlers)M(O,Y)})}catch(K){console.error("Error in native event callback:",K)}},{args:["ptr","usize","ptr","usize"],returns:"void"});if(this.eventCallbackWrapper=A,!A.ptr)throw Error("Failed to create event callback");this.setEventCallback(A.ptr)}setEventCallback(A){this.opentui.symbols.setEventCallback(A)}createRenderer(A,q,g={testing:!1}){return this.opentui.symbols.createRenderer(A,q,g.testing)}destroyRenderer(A){this.opentui.symbols.destroyRenderer(A)}setUseThread(A,q){this.opentui.symbols.setUseThread(A,q)}setBackgroundColor(A,q){this.opentui.symbols.setBackgroundColor(A,q.buffer)}setRenderOffset(A,q){this.opentui.symbols.setRenderOffset(A,q)}updateStats(A,q,g,E){this.opentui.symbols.updateStats(A,q,g,E)}updateMemoryStats(A,q,g,E){this.opentui.symbols.updateMemoryStats(A,q,g,E)}getNextBuffer(A){let q=this.opentui.symbols.getNextBuffer(A);if(!q)throw Error("Failed to get next buffer");let g=this.opentui.symbols.getBufferWidth(q),E=this.opentui.symbols.getBufferHeight(q);return new Og(this,q,g,E,{id:"next buffer",widthMethod:"unicode"})}getCurrentBuffer(A){let q=this.opentui.symbols.getCurrentBuffer(A);if(!q)throw Error("Failed to get current buffer");let g=this.opentui.symbols.getBufferWidth(q),E=this.opentui.symbols.getBufferHeight(q);return new Og(this,q,g,E,{id:"current buffer",widthMethod:"unicode"})}bufferGetCharPtr(A){let q=this.opentui.symbols.bufferGetCharPtr(A);if(!q)throw Error("Failed to get char pointer");return q}bufferGetFgPtr(A){let q=this.opentui.symbols.bufferGetFgPtr(A);if(!q)throw Error("Failed to get fg pointer");return q}bufferGetBgPtr(A){let q=this.opentui.symbols.bufferGetBgPtr(A);if(!q)throw Error("Failed to get bg pointer");return q}bufferGetAttributesPtr(A){let q=this.opentui.symbols.bufferGetAttributesPtr(A);if(!q)throw Error("Failed to get attributes pointer");return q}bufferGetRespectAlpha(A){return this.opentui.symbols.bufferGetRespectAlpha(A)}bufferSetRespectAlpha(A,q){this.opentui.symbols.bufferSetRespectAlpha(A,q)}bufferGetId(A){let g=new Uint8Array(256),E=this.opentui.symbols.bufferGetId(A,g,256),F=typeof E==="bigint"?Number(E):E;return this.decoder.decode(g.slice(0,F))}bufferGetRealCharSize(A){return this.opentui.symbols.bufferGetRealCharSize(A)}bufferWriteResolvedChars(A,q,g){let E=this.opentui.symbols.bufferWriteResolvedChars(A,q,q.length,g);return typeof E==="bigint"?Number(E):E}getBufferWidth(A){return this.opentui.symbols.getBufferWidth(A)}getBufferHeight(A){return this.opentui.symbols.getBufferHeight(A)}bufferClear(A,q){this.opentui.symbols.bufferClear(A,q.buffer)}bufferDrawText(A,q,g,E,F,K,Z){let j=this.encoder.encode(q),U=j.byteLength,O=K?K.buffer:null,Y=F.buffer;this.opentui.symbols.bufferDrawText(A,j,U,g,E,Y,O,Z??0)}bufferSetCellWithAlphaBlending(A,q,g,E,F,K,Z){let j=E.codePointAt(0)??" ".codePointAt(0),U=K.buffer,O=F.buffer;this.opentui.symbols.bufferSetCellWithAlphaBlending(A,q,g,j,O,U,Z??0)}bufferSetCell(A,q,g,E,F,K,Z){let j=E.codePointAt(0)??" ".codePointAt(0),U=K.buffer,O=F.buffer;this.opentui.symbols.bufferSetCell(A,q,g,j,O,U,Z??0)}bufferFillRect(A,q,g,E,F,K){let Z=K.buffer;this.opentui.symbols.bufferFillRect(A,q,g,E,F,Z)}bufferDrawSuperSampleBuffer(A,q,g,E,F,K,Z){let j=K==="bgra8unorm"?0:1;this.opentui.symbols.bufferDrawSuperSampleBuffer(A,q,g,E,F,j,Z)}bufferDrawPackedBuffer(A,q,g,E,F,K,Z){this.opentui.symbols.bufferDrawPackedBuffer(A,q,g,E,F,K,Z)}bufferDrawGrayscaleBuffer(A,q,g,E,F,K,Z,j){this.opentui.symbols.bufferDrawGrayscaleBuffer(A,q,g,E,F,K,Z?.buffer??null,j?.buffer??null)}bufferDrawGrayscaleBufferSupersampled(A,q,g,E,F,K,Z,j){this.opentui.symbols.bufferDrawGrayscaleBufferSupersampled(A,q,g,E,F,K,Z?.buffer??null,j?.buffer??null)}bufferDrawBox(A,q,g,E,F,K,Z,j,U,O){let Y=O?this.encoder.encode(O):null,M=O?Y.length:0,J=O?Y:null;this.opentui.symbols.bufferDrawBox(A,q,g,E,F,K,Z,j.buffer,U.buffer,J,M)}bufferResize(A,q,g){this.opentui.symbols.bufferResize(A,q,g)}linkAlloc(A){let q=this.encoder.encode(A);return this.opentui.symbols.linkAlloc(q,q.length)}linkGetUrl(A,q=512){let g=new Uint8Array(q),E=this.opentui.symbols.linkGetUrl(A,g,q);return this.decoder.decode(g.slice(0,E))}attributesWithLink(A,q){return this.opentui.symbols.attributesWithLink(A,q)}attributesGetLinkId(A){return this.opentui.symbols.attributesGetLinkId(A)}resizeRenderer(A,q,g){this.opentui.symbols.resizeRenderer(A,q,g)}setCursorPosition(A,q,g,E){this.opentui.symbols.setCursorPosition(A,q,g,E)}setCursorStyle(A,q,g){let E=this.encoder.encode(q);this.opentui.symbols.setCursorStyle(A,E,q.length,g)}setCursorColor(A,q){this.opentui.symbols.setCursorColor(A,q.buffer)}getCursorState(A){let q=new ArrayBuffer(CY.size);this.opentui.symbols.getCursorState(A,qA(q));let g=CY.unpack(q),E={0:"block",1:"line",2:"underline"};return{x:g.x,y:g.y,visible:g.visible,style:E[g.style]||"block",blinking:g.blinking,color:QA.fromValues(g.r,g.g,g.b,g.a)}}render(A,q){this.opentui.symbols.render(A,q)}createOptimizedBuffer(A,q,g,E=!1,F){if(Number.isNaN(A)||Number.isNaN(q))console.error(Error(`Invalid dimensions for OptimizedBuffer: ${A}x${q}`).stack);let K=g==="wcwidth"?0:1,Z=F||"unnamed buffer",j=this.encoder.encode(Z),U=this.opentui.symbols.createOptimizedBuffer(A,q,E,K,j,j.length);if(!U)throw Error(`Failed to create optimized buffer: ${A}x${q}`);return new Og(this,U,A,q,{respectAlpha:E,id:F,widthMethod:g})}destroyOptimizedBuffer(A){this.opentui.symbols.destroyOptimizedBuffer(A)}drawFrameBuffer(A,q,g,E,F,K,Z,j){let U=F??0,O=K??0,Y=Z??0,M=j??0;this.opentui.symbols.drawFrameBuffer(A,q,g,E,U,O,Y,M)}setDebugOverlay(A,q,g){this.opentui.symbols.setDebugOverlay(A,q,g)}clearTerminal(A){this.opentui.symbols.clearTerminal(A)}setTerminalTitle(A,q){let g=this.encoder.encode(q);this.opentui.symbols.setTerminalTitle(A,g,g.length)}addToHitGrid(A,q,g,E,F,K){this.opentui.symbols.addToHitGrid(A,q,g,E,F,K)}clearCurrentHitGrid(A){this.opentui.symbols.clearCurrentHitGrid(A)}hitGridPushScissorRect(A,q,g,E,F){this.opentui.symbols.hitGridPushScissorRect(A,q,g,E,F)}hitGridPopScissorRect(A){this.opentui.symbols.hitGridPopScissorRect(A)}hitGridClearScissorRects(A){this.opentui.symbols.hitGridClearScissorRects(A)}addToCurrentHitGridClipped(A,q,g,E,F,K){this.opentui.symbols.addToCurrentHitGridClipped(A,q,g,E,F,K)}checkHit(A,q,g){return this.opentui.symbols.checkHit(A,q,g)}getHitGridDirty(A){return this.opentui.symbols.getHitGridDirty(A)}dumpHitGrid(A){this.opentui.symbols.dumpHitGrid(A)}dumpBuffers(A,q){let g=q??Date.now();this.opentui.symbols.dumpBuffers(A,g)}dumpStdoutBuffer(A,q){let g=q??Date.now();this.opentui.symbols.dumpStdoutBuffer(A,g)}enableMouse(A,q){this.opentui.symbols.enableMouse(A,q)}disableMouse(A){this.opentui.symbols.disableMouse(A)}enableKittyKeyboard(A,q){this.opentui.symbols.enableKittyKeyboard(A,q)}disableKittyKeyboard(A){this.opentui.symbols.disableKittyKeyboard(A)}setKittyKeyboardFlags(A,q){this.opentui.symbols.setKittyKeyboardFlags(A,q)}getKittyKeyboardFlags(A){return this.opentui.symbols.getKittyKeyboardFlags(A)}setupTerminal(A,q){this.opentui.symbols.setupTerminal(A,q)}suspendRenderer(A){this.opentui.symbols.suspendRenderer(A)}resumeRenderer(A){this.opentui.symbols.resumeRenderer(A)}queryPixelResolution(A){this.opentui.symbols.queryPixelResolution(A)}writeOut(A,q){let g=typeof q==="string"?new TextEncoder().encode(q):q;if(g.length===0)return;this.opentui.symbols.writeOut(A,qA(g),g.length)}createTextBuffer(A){let q=A==="wcwidth"?0:1,g=this.opentui.symbols.createTextBuffer(q);if(!g)throw Error("Failed to create TextBuffer");return new nK(this,g)}destroyTextBuffer(A){this.opentui.symbols.destroyTextBuffer(A)}textBufferGetLength(A){return this.opentui.symbols.textBufferGetLength(A)}textBufferGetByteSize(A){return this.opentui.symbols.textBufferGetByteSize(A)}textBufferReset(A){this.opentui.symbols.textBufferReset(A)}textBufferClear(A){this.opentui.symbols.textBufferClear(A)}textBufferSetDefaultFg(A,q){let g=q?q.buffer:null;this.opentui.symbols.textBufferSetDefaultFg(A,g)}textBufferSetDefaultBg(A,q){let g=q?q.buffer:null;this.opentui.symbols.textBufferSetDefaultBg(A,g)}textBufferSetDefaultAttributes(A,q){let g=q===null?null:new Uint8Array([q]);this.opentui.symbols.textBufferSetDefaultAttributes(A,g)}textBufferResetDefaults(A){this.opentui.symbols.textBufferResetDefaults(A)}textBufferGetTabWidth(A){return this.opentui.symbols.textBufferGetTabWidth(A)}textBufferSetTabWidth(A,q){this.opentui.symbols.textBufferSetTabWidth(A,q)}textBufferRegisterMemBuffer(A,q,g=!1){let E=this.opentui.symbols.textBufferRegisterMemBuffer(A,q,q.length,g);if(E===65535)throw Error("Failed to register memory buffer");return E}textBufferReplaceMemBuffer(A,q,g,E=!1){return this.opentui.symbols.textBufferReplaceMemBuffer(A,q,g,g.length,E)}textBufferClearMemRegistry(A){this.opentui.symbols.textBufferClearMemRegistry(A)}textBufferSetTextFromMem(A,q){this.opentui.symbols.textBufferSetTextFromMem(A,q)}textBufferAppend(A,q){this.opentui.symbols.textBufferAppend(A,q,q.length)}textBufferAppendFromMemId(A,q){this.opentui.symbols.textBufferAppendFromMemId(A,q)}textBufferLoadFile(A,q){let g=this.encoder.encode(q);return this.opentui.symbols.textBufferLoadFile(A,g,g.length)}textBufferSetStyledText(A,q){let g=q.filter((K)=>K.text.length>0);if(g.length===0){this.textBufferClear(A);return}let E=g.map((K)=>{if(K.link){let Z=this.linkAlloc(K.link.url);return{...K,attributes:tY(K.attributes??0,Z)}}return K}),F=hY.packList(E);this.opentui.symbols.textBufferSetStyledText(A,qA(F),E.length)}textBufferGetLineCount(A){return this.opentui.symbols.textBufferGetLineCount(A)}textBufferGetPlainText(A,q,g){let E=this.opentui.symbols.textBufferGetPlainText(A,q,g);return typeof E==="bigint"?Number(E):E}getPlainTextBytes(A,q){let g=new Uint8Array(q),E=this.textBufferGetPlainText(A,qA(g),q);if(E===0)return null;return g.slice(0,E)}textBufferGetTextRange(A,q,g,E){let F=new Uint8Array(E),K=this.opentui.symbols.textBufferGetTextRange(A,q,g,qA(F),E),Z=typeof K==="bigint"?Number(K):K;if(Z===0)return null;return F.slice(0,Z)}textBufferGetTextRangeByCoords(A,q,g,E,F,K){let Z=new Uint8Array(K),j=this.opentui.symbols.textBufferGetTextRangeByCoords(A,q,g,E,F,qA(Z),K),U=typeof j==="bigint"?Number(j):j;if(U===0)return null;return Z.slice(0,U)}createTextBufferView(A){let q=this.opentui.symbols.createTextBufferView(A);if(!q)throw Error("Failed to create TextBufferView");return q}destroyTextBufferView(A){this.opentui.symbols.destroyTextBufferView(A)}textBufferViewSetSelection(A,q,g,E,F){let K=E?E.buffer:null,Z=F?F.buffer:null;this.opentui.symbols.textBufferViewSetSelection(A,q,g,K,Z)}textBufferViewResetSelection(A){this.opentui.symbols.textBufferViewResetSelection(A)}textBufferViewGetSelection(A){let q=this.textBufferViewGetSelectionInfo(A);if(q===0xffff_ffff_ffff_ffffn)return null;let g=Number(q>>32n),E=Number(q&0xffff_ffffn);return{start:g,end:E}}textBufferViewGetSelectionInfo(A){return this.opentui.symbols.textBufferViewGetSelectionInfo(A)}textBufferViewSetLocalSelection(A,q,g,E,F,K,Z){let j=K?K.buffer:null,U=Z?Z.buffer:null;return this.opentui.symbols.textBufferViewSetLocalSelection(A,q,g,E,F,j,U)}textBufferViewUpdateSelection(A,q,g,E){let F=g?g.buffer:null,K=E?E.buffer:null;this.opentui.symbols.textBufferViewUpdateSelection(A,q,F,K)}textBufferViewUpdateLocalSelection(A,q,g,E,F,K,Z){let j=K?K.buffer:null,U=Z?Z.buffer:null;return this.opentui.symbols.textBufferViewUpdateLocalSelection(A,q,g,E,F,j,U)}textBufferViewResetLocalSelection(A){this.opentui.symbols.textBufferViewResetLocalSelection(A)}textBufferViewSetWrapWidth(A,q){this.opentui.symbols.textBufferViewSetWrapWidth(A,q)}textBufferViewSetWrapMode(A,q){let g=q==="none"?0:q==="char"?1:2;this.opentui.symbols.textBufferViewSetWrapMode(A,g)}textBufferViewSetViewportSize(A,q,g){this.opentui.symbols.textBufferViewSetViewportSize(A,q,g)}textBufferViewSetViewport(A,q,g,E,F){this.opentui.symbols.textBufferViewSetViewport(A,q,g,E,F)}textBufferViewGetLineInfo(A){let q=new ArrayBuffer(Ug.size);this.textBufferViewGetLineInfoDirect(A,qA(q));let g=Ug.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}textBufferViewGetLogicalLineInfo(A){let q=new ArrayBuffer(Ug.size);this.textBufferViewGetLogicalLineInfoDirect(A,qA(q));let g=Ug.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}textBufferViewGetVirtualLineCount(A){return this.opentui.symbols.textBufferViewGetVirtualLineCount(A)}textBufferViewGetLineInfoDirect(A,q){this.opentui.symbols.textBufferViewGetLineInfoDirect(A,q)}textBufferViewGetLogicalLineInfoDirect(A,q){this.opentui.symbols.textBufferViewGetLogicalLineInfoDirect(A,q)}textBufferViewGetSelectedText(A,q,g){let E=this.opentui.symbols.textBufferViewGetSelectedText(A,q,g);return typeof E==="bigint"?Number(E):E}textBufferViewGetPlainText(A,q,g){let E=this.opentui.symbols.textBufferViewGetPlainText(A,q,g);return typeof E==="bigint"?Number(E):E}textBufferViewGetSelectedTextBytes(A,q){let g=new Uint8Array(q),E=this.textBufferViewGetSelectedText(A,qA(g),q);if(E===0)return null;return g.slice(0,E)}textBufferViewGetPlainTextBytes(A,q){let g=new Uint8Array(q),E=this.textBufferViewGetPlainText(A,qA(g),q);if(E===0)return null;return g.slice(0,E)}textBufferViewSetTabIndicator(A,q){this.opentui.symbols.textBufferViewSetTabIndicator(A,q)}textBufferViewSetTabIndicatorColor(A,q){this.opentui.symbols.textBufferViewSetTabIndicatorColor(A,q.buffer)}textBufferViewSetTruncate(A,q){this.opentui.symbols.textBufferViewSetTruncate(A,q)}textBufferViewMeasureForDimensions(A,q,g){let E=new ArrayBuffer(wY.size),F=qA(new Uint8Array(E));if(!this.opentui.symbols.textBufferViewMeasureForDimensions(A,q,g,F))return null;return wY.unpack(E)}textBufferAddHighlightByCharRange(A,q){let g=fK.pack(q);this.opentui.symbols.textBufferAddHighlightByCharRange(A,qA(g))}textBufferAddHighlight(A,q,g){let E=fK.pack(g);this.opentui.symbols.textBufferAddHighlight(A,q,qA(E))}textBufferRemoveHighlightsByRef(A,q){this.opentui.symbols.textBufferRemoveHighlightsByRef(A,q)}textBufferClearLineHighlights(A,q){this.opentui.symbols.textBufferClearLineHighlights(A,q)}textBufferClearAllHighlights(A){this.opentui.symbols.textBufferClearAllHighlights(A)}textBufferSetSyntaxStyle(A,q){this.opentui.symbols.textBufferSetSyntaxStyle(A,q)}textBufferGetLineHighlights(A,q){let g=new BigUint64Array(1),E=this.opentui.symbols.textBufferGetLineHighlightsPtr(A,q,qA(g));if(!E)return[];let F=Number(g[0]),K=F*fK.size,Z=XE(E,0,K),j=fK.unpackList(Z,F);return this.opentui.symbols.textBufferFreeLineHighlights(E,F),j}textBufferGetHighlightCount(A){return this.opentui.symbols.textBufferGetHighlightCount(A)}getArenaAllocatedBytes(){let A=this.opentui.symbols.getArenaAllocatedBytes();return typeof A==="bigint"?Number(A):A}bufferDrawTextBufferView(A,q,g,E){this.opentui.symbols.bufferDrawTextBufferView(A,q,g,E)}bufferDrawEditorView(A,q,g,E){this.opentui.symbols.bufferDrawEditorView(A,q,g,E)}createEditorView(A,q,g){let E=this.opentui.symbols.createEditorView(A,q,g);if(!E)throw Error("Failed to create EditorView");return E}destroyEditorView(A){this.opentui.symbols.destroyEditorView(A)}editorViewSetViewportSize(A,q,g){this.opentui.symbols.editorViewSetViewportSize(A,q,g)}editorViewSetViewport(A,q,g,E,F,K){this.opentui.symbols.editorViewSetViewport(A,q,g,E,F,K)}editorViewGetViewport(A){let q=new Uint32Array(1),g=new Uint32Array(1),E=new Uint32Array(1),F=new Uint32Array(1);return this.opentui.symbols.editorViewGetViewport(A,qA(q),qA(g),qA(E),qA(F)),{offsetX:q[0],offsetY:g[0],width:E[0],height:F[0]}}editorViewSetScrollMargin(A,q){this.opentui.symbols.editorViewSetScrollMargin(A,q)}editorViewSetWrapMode(A,q){let g=q==="none"?0:q==="char"?1:2;this.opentui.symbols.editorViewSetWrapMode(A,g)}editorViewGetVirtualLineCount(A){return this.opentui.symbols.editorViewGetVirtualLineCount(A)}editorViewGetTotalVirtualLineCount(A){return this.opentui.symbols.editorViewGetTotalVirtualLineCount(A)}editorViewGetTextBufferView(A){let q=this.opentui.symbols.editorViewGetTextBufferView(A);if(!q)throw Error("Failed to get TextBufferView from EditorView");return q}editorViewGetLineInfo(A){let q=new ArrayBuffer(Ug.size);this.opentui.symbols.editorViewGetLineInfoDirect(A,qA(q));let g=Ug.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}editorViewGetLogicalLineInfo(A){let q=new ArrayBuffer(Ug.size);this.opentui.symbols.editorViewGetLogicalLineInfoDirect(A,qA(q));let g=Ug.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}createEditBuffer(A){let q=A==="wcwidth"?0:1,g=this.opentui.symbols.createEditBuffer(q);if(!g)throw Error("Failed to create EditBuffer");return g}destroyEditBuffer(A){this.opentui.symbols.destroyEditBuffer(A)}editBufferSetText(A,q){this.opentui.symbols.editBufferSetText(A,q,q.length)}editBufferSetTextFromMem(A,q){this.opentui.symbols.editBufferSetTextFromMem(A,q)}editBufferReplaceText(A,q){this.opentui.symbols.editBufferReplaceText(A,q,q.length)}editBufferReplaceTextFromMem(A,q){this.opentui.symbols.editBufferReplaceTextFromMem(A,q)}editBufferGetText(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editBufferGetText(A,qA(g),q),F=typeof E==="bigint"?Number(E):E;if(F===0)return null;return g.slice(0,F)}editBufferInsertChar(A,q){let g=this.encoder.encode(q);this.opentui.symbols.editBufferInsertChar(A,g,g.length)}editBufferInsertText(A,q){let g=this.encoder.encode(q);this.opentui.symbols.editBufferInsertText(A,g,g.length)}editBufferDeleteChar(A){this.opentui.symbols.editBufferDeleteChar(A)}editBufferDeleteCharBackward(A){this.opentui.symbols.editBufferDeleteCharBackward(A)}editBufferDeleteRange(A,q,g,E,F){this.opentui.symbols.editBufferDeleteRange(A,q,g,E,F)}editBufferNewLine(A){this.opentui.symbols.editBufferNewLine(A)}editBufferDeleteLine(A){this.opentui.symbols.editBufferDeleteLine(A)}editBufferMoveCursorLeft(A){this.opentui.symbols.editBufferMoveCursorLeft(A)}editBufferMoveCursorRight(A){this.opentui.symbols.editBufferMoveCursorRight(A)}editBufferMoveCursorUp(A){this.opentui.symbols.editBufferMoveCursorUp(A)}editBufferMoveCursorDown(A){this.opentui.symbols.editBufferMoveCursorDown(A)}editBufferGotoLine(A,q){this.opentui.symbols.editBufferGotoLine(A,q)}editBufferSetCursor(A,q,g){this.opentui.symbols.editBufferSetCursor(A,q,g)}editBufferSetCursorToLineCol(A,q,g){this.opentui.symbols.editBufferSetCursorToLineCol(A,q,g)}editBufferSetCursorByOffset(A,q){this.opentui.symbols.editBufferSetCursorByOffset(A,q)}editBufferGetCursorPosition(A){let q=new ArrayBuffer(Lq.size);return this.opentui.symbols.editBufferGetCursorPosition(A,qA(q)),Lq.unpack(q)}editBufferGetId(A){return this.opentui.symbols.editBufferGetId(A)}editBufferGetTextBuffer(A){let q=this.opentui.symbols.editBufferGetTextBuffer(A);if(!q)throw Error("Failed to get TextBuffer from EditBuffer");return q}editBufferDebugLogRope(A){this.opentui.symbols.editBufferDebugLogRope(A)}editBufferUndo(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editBufferUndo(A,qA(g),q),F=typeof E==="bigint"?Number(E):E;if(F===0)return null;return g.slice(0,F)}editBufferRedo(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editBufferRedo(A,qA(g),q),F=typeof E==="bigint"?Number(E):E;if(F===0)return null;return g.slice(0,F)}editBufferCanUndo(A){return this.opentui.symbols.editBufferCanUndo(A)}editBufferCanRedo(A){return this.opentui.symbols.editBufferCanRedo(A)}editBufferClearHistory(A){this.opentui.symbols.editBufferClearHistory(A)}editBufferClear(A){this.opentui.symbols.editBufferClear(A)}editBufferGetNextWordBoundary(A){let q=new ArrayBuffer(Lq.size);return this.opentui.symbols.editBufferGetNextWordBoundary(A,qA(q)),Lq.unpack(q)}editBufferGetPrevWordBoundary(A){let q=new ArrayBuffer(Lq.size);return this.opentui.symbols.editBufferGetPrevWordBoundary(A,qA(q)),Lq.unpack(q)}editBufferGetEOL(A){let q=new ArrayBuffer(Lq.size);return this.opentui.symbols.editBufferGetEOL(A,qA(q)),Lq.unpack(q)}editBufferOffsetToPosition(A,q){let g=new ArrayBuffer(Lq.size);if(!this.opentui.symbols.editBufferOffsetToPosition(A,q,qA(g)))return null;return Lq.unpack(g)}editBufferPositionToOffset(A,q,g){return this.opentui.symbols.editBufferPositionToOffset(A,q,g)}editBufferGetLineStartOffset(A,q){return this.opentui.symbols.editBufferGetLineStartOffset(A,q)}editBufferGetTextRange(A,q,g,E){let F=new Uint8Array(E),K=this.opentui.symbols.editBufferGetTextRange(A,q,g,qA(F),E),Z=typeof K==="bigint"?Number(K):K;if(Z===0)return null;return F.slice(0,Z)}editBufferGetTextRangeByCoords(A,q,g,E,F,K){let Z=new Uint8Array(K),j=this.opentui.symbols.editBufferGetTextRangeByCoords(A,q,g,E,F,qA(Z),K),U=typeof j==="bigint"?Number(j):j;if(U===0)return null;return Z.slice(0,U)}editorViewSetSelection(A,q,g,E,F){let K=E?E.buffer:null,Z=F?F.buffer:null;this.opentui.symbols.editorViewSetSelection(A,q,g,K,Z)}editorViewResetSelection(A){this.opentui.symbols.editorViewResetSelection(A)}editorViewGetSelection(A){let q=this.opentui.symbols.editorViewGetSelection(A);if(q===0xffff_ffff_ffff_ffffn)return null;let g=Number(q>>32n),E=Number(q&0xffff_ffffn);return{start:g,end:E}}editorViewSetLocalSelection(A,q,g,E,F,K,Z,j,U){let O=K?K.buffer:null,Y=Z?Z.buffer:null;return this.opentui.symbols.editorViewSetLocalSelection(A,q,g,E,F,O,Y,j,U)}editorViewUpdateSelection(A,q,g,E){let F=g?g.buffer:null,K=E?E.buffer:null;this.opentui.symbols.editorViewUpdateSelection(A,q,F,K)}editorViewUpdateLocalSelection(A,q,g,E,F,K,Z,j,U){let O=K?K.buffer:null,Y=Z?Z.buffer:null;return this.opentui.symbols.editorViewUpdateLocalSelection(A,q,g,E,F,O,Y,j,U)}editorViewResetLocalSelection(A){this.opentui.symbols.editorViewResetLocalSelection(A)}editorViewGetSelectedTextBytes(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editorViewGetSelectedTextBytes(A,qA(g),q),F=typeof E==="bigint"?Number(E):E;if(F===0)return null;return g.slice(0,F)}editorViewGetCursor(A){let q=new Uint32Array(1),g=new Uint32Array(1);return this.opentui.symbols.editorViewGetCursor(A,qA(q),qA(g)),{row:q[0],col:g[0]}}editorViewGetText(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editorViewGetText(A,qA(g),q),F=typeof E==="bigint"?Number(E):E;if(F===0)return null;return g.slice(0,F)}editorViewGetVisualCursor(A){let q=new ArrayBuffer(Aq.size);return this.opentui.symbols.editorViewGetVisualCursor(A,qA(q)),Aq.unpack(q)}editorViewMoveUpVisual(A){this.opentui.symbols.editorViewMoveUpVisual(A)}editorViewMoveDownVisual(A){this.opentui.symbols.editorViewMoveDownVisual(A)}editorViewDeleteSelectedText(A){this.opentui.symbols.editorViewDeleteSelectedText(A)}editorViewSetCursorByOffset(A,q){this.opentui.symbols.editorViewSetCursorByOffset(A,q)}editorViewGetNextWordBoundary(A){let q=new ArrayBuffer(Aq.size);return this.opentui.symbols.editorViewGetNextWordBoundary(A,qA(q)),Aq.unpack(q)}editorViewGetPrevWordBoundary(A){let q=new ArrayBuffer(Aq.size);return this.opentui.symbols.editorViewGetPrevWordBoundary(A,qA(q)),Aq.unpack(q)}editorViewGetEOL(A){let q=new ArrayBuffer(Aq.size);return this.opentui.symbols.editorViewGetEOL(A,qA(q)),Aq.unpack(q)}editorViewGetVisualSOL(A){let q=new ArrayBuffer(Aq.size);return this.opentui.symbols.editorViewGetVisualSOL(A,qA(q)),Aq.unpack(q)}editorViewGetVisualEOL(A){let q=new ArrayBuffer(Aq.size);return this.opentui.symbols.editorViewGetVisualEOL(A,qA(q)),Aq.unpack(q)}bufferPushScissorRect(A,q,g,E,F){this.opentui.symbols.bufferPushScissorRect(A,q,g,E,F)}bufferPopScissorRect(A){this.opentui.symbols.bufferPopScissorRect(A)}bufferClearScissorRects(A){this.opentui.symbols.bufferClearScissorRects(A)}bufferPushOpacity(A,q){this.opentui.symbols.bufferPushOpacity(A,q)}bufferPopOpacity(A){this.opentui.symbols.bufferPopOpacity(A)}bufferGetCurrentOpacity(A){return this.opentui.symbols.bufferGetCurrentOpacity(A)}bufferClearOpacity(A){this.opentui.symbols.bufferClearOpacity(A)}getTerminalCapabilities(A){let q=new ArrayBuffer(zY.size);this.opentui.symbols.getTerminalCapabilities(A,qA(q));let g=zY.unpack(q);return{kitty_keyboard:g.kitty_keyboard,kitty_graphics:g.kitty_graphics,rgb:g.rgb,unicode:g.unicode,sgr_pixels:g.sgr_pixels,color_scheme_updates:g.color_scheme_updates,explicit_width:g.explicit_width,scaled_text:g.scaled_text,sixel:g.sixel,focus_tracking:g.focus_tracking,sync:g.sync,bracketed_paste:g.bracketed_paste,hyperlinks:g.hyperlinks,explicit_cursor_positioning:g.explicit_cursor_positioning,terminal:{name:g.term_name??"",version:g.term_version??"",from_xtversion:g.term_from_xtversion}}}processCapabilityResponse(A,q){let g=this.encoder.encode(q);this.opentui.symbols.processCapabilityResponse(A,g,g.length)}encodeUnicode(A,q){let g=this.encoder.encode(A),E=q==="wcwidth"?0:1,F=new ArrayBuffer(8),K=new ArrayBuffer(8);if(!this.opentui.symbols.encodeUnicode(g,g.length,qA(F),qA(K),E))return null;let j=new BigUint64Array(F),U=new BigUint64Array(K),O=Number(j[0]),Y=Number(U[0]);if(Y===0)return{ptr:O,data:[]};let M=Y*BY.size,J=XE(O,0,M),$=BY.unpackList(J,Y);return{ptr:O,data:$}}freeUnicode(A){this.opentui.symbols.freeUnicode(A.ptr,A.data.length)}bufferDrawChar(A,q,g,E,F,K,Z=0){this.opentui.symbols.bufferDrawChar(A,q,g,E,F.buffer,K.buffer,Z)}createSyntaxStyle(){let A=this.opentui.symbols.createSyntaxStyle();if(!A)throw Error("Failed to create SyntaxStyle");return A}destroySyntaxStyle(A){this.opentui.symbols.destroySyntaxStyle(A)}syntaxStyleRegister(A,q,g,E,F){let K=this.encoder.encode(q),Z=g?g.buffer:null,j=E?E.buffer:null;return this.opentui.symbols.syntaxStyleRegister(A,K,K.length,Z,j,F)}syntaxStyleResolveByName(A,q){let g=this.encoder.encode(q),E=this.opentui.symbols.syntaxStyleResolveByName(A,g,g.length);return E===0?null:E}syntaxStyleGetStyleCount(A){let q=this.opentui.symbols.syntaxStyleGetStyleCount(A);return typeof q==="bigint"?Number(q):q}editorViewSetPlaceholderStyledText(A,q){let g=q.filter((F)=>F.text.length>0);if(g.length===0){this.opentui.symbols.editorViewSetPlaceholderStyledText(A,null,0);return}let E=hY.packList(g);this.opentui.symbols.editorViewSetPlaceholderStyledText(A,qA(E),g.length)}editorViewSetTabIndicator(A,q){this.opentui.symbols.editorViewSetTabIndicator(A,q)}editorViewSetTabIndicatorColor(A,q){this.opentui.symbols.editorViewSetTabIndicatorColor(A,q.buffer)}onNativeEvent(A,q){this._nativeEvents.on(A,q)}onceNativeEvent(A,q){this._nativeEvents.once(A,q)}offNativeEvent(A,q){this._nativeEvents.off(A,q)}onAnyNativeEvent(A){this._anyEventHandlers.push(A)}}var GQ,dK;function Jq(){if(!dK)try{dK=new EU(GQ)}catch(A){throw Error(`Failed to initialize OpenTUI render library: ${A instanceof Error?A.message:"Unknown error"}`)}return dK}try{dK=new EU(GQ)}catch(A){}class nK{lib;bufferPtr;_length=0;_byteSize=0;_lineInfo;_destroyed=!1;_syntaxStyle;_textBytes;_memId;_appendedChunks=[];constructor(A,q){this.lib=A,this.bufferPtr=q}static create(A){return Jq().createTextBuffer(A)}guard(){if(this._destroyed)throw Error("TextBuffer is destroyed")}setText(A){if(this.guard(),this._textBytes=this.lib.encoder.encode(A),this._memId===void 0)this._memId=this.lib.textBufferRegisterMemBuffer(this.bufferPtr,this._textBytes,!1);else this.lib.textBufferReplaceMemBuffer(this.bufferPtr,this._memId,this._textBytes,!1);this.lib.textBufferSetTextFromMem(this.bufferPtr,this._memId),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0,this._appendedChunks=[]}append(A){this.guard();let q=this.lib.encoder.encode(A);this._appendedChunks.push(q),this.lib.textBufferAppend(this.bufferPtr,q),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0}loadFile(A){if(this.guard(),!this.lib.textBufferLoadFile(this.bufferPtr,A))throw Error(`Failed to load file: ${A}`);this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0,this._textBytes=void 0}setStyledText(A){this.guard();let q=A.chunks.map((g)=>({text:g.text,fg:g.fg||null,bg:g.bg||null,attributes:g.attributes??0,link:g.link}));this.lib.textBufferSetStyledText(this.bufferPtr,q),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0}setDefaultFg(A){this.guard(),this.lib.textBufferSetDefaultFg(this.bufferPtr,A)}setDefaultBg(A){this.guard(),this.lib.textBufferSetDefaultBg(this.bufferPtr,A)}setDefaultAttributes(A){this.guard(),this.lib.textBufferSetDefaultAttributes(this.bufferPtr,A)}resetDefaults(){this.guard(),this.lib.textBufferResetDefaults(this.bufferPtr)}getLineCount(){return this.guard(),this.lib.textBufferGetLineCount(this.bufferPtr)}get length(){return this.guard(),this._length}get byteSize(){return this.guard(),this._byteSize}get ptr(){return this.guard(),this.bufferPtr}getPlainText(){if(this.guard(),this._byteSize===0)return"";let A=this.lib.getPlainTextBytes(this.bufferPtr,this._byteSize);if(!A)return"";return this.lib.decoder.decode(A)}getTextRange(A,q){if(this.guard(),A>=q)return"";if(this._byteSize===0)return"";let g=this.lib.textBufferGetTextRange(this.bufferPtr,A,q,this._byteSize);if(!g)return"";return this.lib.decoder.decode(g)}addHighlightByCharRange(A){this.guard(),this.lib.textBufferAddHighlightByCharRange(this.bufferPtr,A)}addHighlight(A,q){this.guard(),this.lib.textBufferAddHighlight(this.bufferPtr,A,q)}removeHighlightsByRef(A){this.guard(),this.lib.textBufferRemoveHighlightsByRef(this.bufferPtr,A)}clearLineHighlights(A){this.guard(),this.lib.textBufferClearLineHighlights(this.bufferPtr,A)}clearAllHighlights(){this.guard(),this.lib.textBufferClearAllHighlights(this.bufferPtr)}getLineHighlights(A){return this.guard(),this.lib.textBufferGetLineHighlights(this.bufferPtr,A)}getHighlightCount(){return this.guard(),this.lib.textBufferGetHighlightCount(this.bufferPtr)}setSyntaxStyle(A){this.guard(),this._syntaxStyle=A??void 0,this.lib.textBufferSetSyntaxStyle(this.bufferPtr,A?.ptr??null)}getSyntaxStyle(){return this.guard(),this._syntaxStyle??null}setTabWidth(A){this.guard(),this.lib.textBufferSetTabWidth(this.bufferPtr,A)}getTabWidth(){return this.guard(),this.lib.textBufferGetTabWidth(this.bufferPtr)}clear(){this.guard(),this.lib.textBufferClear(this.bufferPtr),this._length=0,this._byteSize=0,this._lineInfo=void 0,this._textBytes=void 0,this._appendedChunks=[]}reset(){this.guard(),this.lib.textBufferReset(this.bufferPtr),this._length=0,this._byteSize=0,this._lineInfo=void 0,this._textBytes=void 0,this._memId=void 0,this._appendedChunks=[]}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyTextBuffer(this.bufferPtr)}}function U9(A,q){if(typeof q.width==="number"){if(q.width<0)throw TypeError(`Invalid width for Renderable ${A}: ${q.width}`)}if(typeof q.height==="number"){if(q.height<0)throw TypeError(`Invalid height for Renderable ${A}: ${q.height}`)}}function S6(A){if(typeof A==="string"&&A.endsWith("%")){let q=A.slice(0,-1),g=parseFloat(q);return!Number.isNaN(g)}return!1}function Vq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;if(A==="auto")return!0;return S6(A)}function Wq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;return S6(A)}function bq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;if(A==="auto")return!0;return S6(A)}function G9(A){return A==="relative"||A==="absolute"}function Y9(A){return A==="visible"||A==="hidden"||A==="scroll"}function cK(A){return bq(A)}function DY(A){if(A===void 0||A==="auto")return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return!1}function Gg(A){if(A===void 0)return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return S6(A)}var YQ=Symbol.for("@opentui/core/Renderable"),QQ;((A)=>{A.LAYOUT_CHANGED="layout-changed",A.ADDED="added",A.REMOVED="removed",A.RESIZED="resized"})(QQ||={});var OQ;((A)=>{A.FOCUSED="focused",A.BLURRED="blurred"})(OQ||={});function R6(A){return!!A?.[YQ]}class aE extends j9{[YQ]=!0;static renderableNumber=1;_id;num;_dirty=!1;parent=null;_visible=!0;constructor(A){super();this.num=aE.renderableNumber++,this._id=A.id??`renderable-${this.num}`}get id(){return this._id}set id(A){this._id=A}get isDirty(){return this._dirty}markClean(){this._dirty=!1}markDirty(){this._dirty=!0}destroy(){}destroyRecursively(){}get visible(){return this._visible}set visible(A){this._visible=A}}var rK=lK.Config.create();rK.setUseWebDefaults(!1);rK.setPointScaleFactor(1);class kA extends aE{static renderablesByNumber=new Map;_isDestroyed=!1;_ctx;_translateX=0;_translateY=0;_x=0;_y=0;_width;_height;_widthValue=0;_heightValue=0;_zIndex;selectable=!1;buffered;frameBuffer=null;_focusable=!1;_focused=!1;keypressHandler=null;pasteHandler=null;_live=!1;_liveCount=0;_sizeChangeListener=void 0;_mouseListener=null;_mouseListeners={};_pasteListener=void 0;_keyListeners={};yogaNode;_positionType="relative";_overflow="visible";_position={};_opacity=1;_flexShrink=1;renderableMapById=new Map;_childrenInLayoutOrder=[];_childrenInZIndexOrder=[];needsZIndexSort=!1;parent=null;childrenPrimarySortDirty=!0;childrenSortedByPrimaryAxis=[];_shouldUpdateBefore=new Set;onLifecyclePass=null;renderBefore;renderAfter;constructor(A,q){super(q);if(this._ctx=A,kA.renderablesByNumber.set(this.num,this),U9(this.id,q),this.renderBefore=q.renderBefore,this.renderAfter=q.renderAfter,this._width=q.width??"auto",this._height=q.height??"auto",typeof this._width==="number")this._widthValue=this._width;if(typeof this._height==="number")this._heightValue=this._height;if(this._zIndex=q.zIndex??0,this._visible=q.visible!==!1,this.buffered=q.buffered??!1,this._live=q.live??!1,this._liveCount=this._live&&this._visible?1:0,this._opacity=q.opacity!==void 0?Math.max(0,Math.min(1,q.opacity)):1,this.yogaNode=lK.Node.create(rK),this.yogaNode.setDisplay(this._visible?Qg.Flex:Qg.None),this.setupYogaProperties(q),this.applyEventOptions(q),this.buffered)this.createFrameBuffer()}get id(){return this._id}set id(A){if(this.parent)this.parent.renderableMapById.delete(this.id),this.parent.renderableMapById.set(A,this);super.id=A}get focusable(){return this._focusable}get ctx(){return this._ctx}get visible(){return this._visible}get primaryAxis(){let A=this.yogaNode.getFlexDirection();return A===2||A===3?"row":"column"}set visible(A){if(this._visible===A)return;let q=this._visible;if(this._visible=A,this.yogaNode.setDisplay(A?Qg.Flex:Qg.None),this._live){if(!q&&A)this.propagateLiveCount(1);else if(q&&!A)this.propagateLiveCount(-1)}if(this._focused)this.blur();this.requestRender()}get opacity(){return this._opacity}set opacity(A){let q=Math.max(0,Math.min(1,A));if(this._opacity!==q)this._opacity=q,this.requestRender()}hasSelection(){return!1}onSelectionChanged(A){return!1}getSelectedText(){return""}shouldStartSelection(A,q){return!1}focus(){if(this._isDestroyed||this._focused||!this._focusable)return;this._ctx.focusRenderable(this),this._focused=!0,this.requestRender(),this.keypressHandler=(A)=>{if(this._isDestroyed)return;if(this._keyListeners.down?.(A),this._isDestroyed)return;if(!A.defaultPrevented&&this.handleKeyPress)this.handleKeyPress(A)},this.pasteHandler=(A)=>{if(this._isDestroyed)return;if(this._pasteListener?.call(this,A),this._isDestroyed)return;if(!A.defaultPrevented&&this.handlePaste)this.handlePaste(A)},this.ctx._internalKeyInput.onInternal("keypress",this.keypressHandler),this.ctx._internalKeyInput.onInternal("paste",this.pasteHandler),this.emit("focused")}blur(){if(!this._focused||!this._focusable)return;if(this._focused=!1,this.requestRender(),this.keypressHandler)this.ctx._internalKeyInput.offInternal("keypress",this.keypressHandler),this.keypressHandler=null;if(this.pasteHandler)this.ctx._internalKeyInput.offInternal("paste",this.pasteHandler),this.pasteHandler=null;this.emit("blurred")}get focused(){return this._focused}get live(){return this._live}get liveCount(){return this._liveCount}set live(A){if(this._live===A)return;if(this._live=A,this._visible){let q=A?1:-1;this.propagateLiveCount(q)}}propagateLiveCount(A){this._liveCount+=A,this.parent?.propagateLiveCount(A)}findDescendantById(A){for(let q of this._childrenInLayoutOrder){if(q.id===A)return q;if(R6(q)){let g=q.findDescendantById(A);if(g)return g}}return}requestRender(){this.markDirty(),this._ctx.requestRender()}get translateX(){return this._translateX}set translateX(A){if(this._translateX===A)return;if(this._translateX=A,this.parent)this.parent.childrenPrimarySortDirty=!0;this.requestRender()}get translateY(){return this._translateY}set translateY(A){if(this._translateY===A)return;if(this._translateY=A,this.parent)this.parent.childrenPrimarySortDirty=!0;this.requestRender()}get x(){if(this.parent)return this.parent.x+this._x+this._translateX;return this._x+this._translateX}set x(A){this.left=A}get top(){return this._position.top}set top(A){if(bq(A)||A===void 0)this.setPosition({top:A})}get right(){return this._position.right}set right(A){if(bq(A)||A===void 0)this.setPosition({right:A})}get bottom(){return this._position.bottom}set bottom(A){if(bq(A)||A===void 0)this.setPosition({bottom:A})}get left(){return this._position.left}set left(A){if(bq(A)||A===void 0)this.setPosition({left:A})}get y(){if(this.parent)return this.parent.y+this._y+this._translateY;return this._y+this._translateY}set y(A){this.top=A}get width(){return this._widthValue}set width(A){if(cK(A)){if(this._width=A,this.yogaNode.setWidth(A),typeof A==="number"&&this._flexShrink===1)this._flexShrink=0,this.yogaNode.setFlexShrink(0);this.requestRender()}}get height(){return this._heightValue}set height(A){if(cK(A)){if(this._height=A,this.yogaNode.setHeight(A),typeof A==="number"&&this._flexShrink===1)this._flexShrink=0,this.yogaNode.setFlexShrink(0);this.requestRender()}}get zIndex(){return this._zIndex}set zIndex(A){if(this._zIndex!==A)this._zIndex=A,this.parent?.requestZIndexSort(),this.requestRender()}requestZIndexSort(){this.needsZIndexSort=!0}ensureZIndexSorted(){if(this.needsZIndexSort)this._childrenInZIndexOrder.sort((A,q)=>A.zIndex>q.zIndex?1:A.zIndex<q.zIndex?-1:0),this.needsZIndexSort=!1}getChildrenSortedByPrimaryAxis(){if(!this.childrenPrimarySortDirty&&this.childrenSortedByPrimaryAxis.length===this._childrenInLayoutOrder.length)return this.childrenSortedByPrimaryAxis;let A=this.yogaNode.getFlexDirection(),q=A===2||A===3?"x":"y",g=[...this._childrenInLayoutOrder];return g.sort((E,F)=>{let K=q==="y"?E.y:E.x,Z=q==="y"?F.y:F.x;return K-Z}),this.childrenSortedByPrimaryAxis=g,this.childrenPrimarySortDirty=!1,this.childrenSortedByPrimaryAxis}setupYogaProperties(A){let q=this.yogaNode;if(DY(A.flexBasis))q.setFlexBasis(A.flexBasis);if(Gg(A.minWidth))q.setMinWidth(A.minWidth);if(Gg(A.minHeight))q.setMinHeight(A.minHeight);if(A.flexGrow!==void 0)q.setFlexGrow(A.flexGrow);else q.setFlexGrow(0);if(A.flexShrink!==void 0)this._flexShrink=A.flexShrink,q.setFlexShrink(A.flexShrink);else{let E=typeof A.width==="number",F=typeof A.height==="number";this._flexShrink=E||F?0:1,q.setFlexShrink(this._flexShrink)}if(q.setFlexDirection(yj(A.flexDirection)),q.setFlexWrap(fj(A.flexWrap)),q.setAlignItems(Dj(A.alignItems)),q.setJustifyContent(bj(A.justifyContent)),q.setAlignSelf(kj(A.alignSelf)),cK(A.width))this._width=A.width,this.yogaNode.setWidth(A.width);if(cK(A.height))this._height=A.height,this.yogaNode.setHeight(A.height);if(this._positionType=A.position==="absolute"?"absolute":"relative",this._positionType!=="relative")q.setPositionType(mj(this._positionType));if(this._overflow=A.overflow==="hidden"?"hidden":A.overflow==="scroll"?"scroll":"visible",this._overflow!=="visible")q.setOverflow(vj(this._overflow));if(A.top!==void 0||A.right!==void 0||A.bottom!==void 0||A.left!==void 0)this._position={top:A.top,right:A.right,bottom:A.bottom,left:A.left},this.updateYogaPosition(this._position);if(Gg(A.maxWidth))q.setMaxWidth(A.maxWidth);if(Gg(A.maxHeight))q.setMaxHeight(A.maxHeight);this.setupMarginAndPadding(A)}setupMarginAndPadding(A){let q=this.yogaNode;if(Vq(A.margin))q.setMargin(t.Top,A.margin),q.setMargin(t.Right,A.margin),q.setMargin(t.Bottom,A.margin),q.setMargin(t.Left,A.margin);if(Vq(A.marginTop))q.setMargin(t.Top,A.marginTop);if(Vq(A.marginRight))q.setMargin(t.Right,A.marginRight);if(Vq(A.marginBottom))q.setMargin(t.Bottom,A.marginBottom);if(Vq(A.marginLeft))q.setMargin(t.Left,A.marginLeft);if(Wq(A.padding))q.setPadding(t.Top,A.padding),q.setPadding(t.Right,A.padding),q.setPadding(t.Bottom,A.padding),q.setPadding(t.Left,A.padding);if(Wq(A.paddingTop))q.setPadding(t.Top,A.paddingTop);if(Wq(A.paddingRight))q.setPadding(t.Right,A.paddingRight);if(Wq(A.paddingBottom))q.setPadding(t.Bottom,A.paddingBottom);if(Wq(A.paddingLeft))q.setPadding(t.Left,A.paddingLeft)}set position(A){if(!G9(A)||this._positionType===A)return;this._positionType=A,this.yogaNode.setPositionType(mj(A)),this.requestRender()}get overflow(){return this._overflow}set overflow(A){if(!Y9(A)||this._overflow===A)return;this._overflow=A,this.yogaNode.setOverflow(vj(A)),this.requestRender()}setPosition(A){this._position={...this._position,...A},this.updateYogaPosition(A)}updateYogaPosition(A){let q=this.yogaNode,{top:g,right:E,bottom:F,left:K}=A;if(bq(g))if(g==="auto")q.setPositionAuto(t.Top);else q.setPosition(t.Top,g);if(bq(E))if(E==="auto")q.setPositionAuto(t.Right);else q.setPosition(t.Right,E);if(bq(F))if(F==="auto")q.setPositionAuto(t.Bottom);else q.setPosition(t.Bottom,F);if(bq(K))if(K==="auto")q.setPositionAuto(t.Left);else q.setPosition(t.Left,K);this.requestRender()}set flexGrow(A){if(A==null)this.yogaNode.setFlexGrow(0);else this.yogaNode.setFlexGrow(A);this.requestRender()}set flexShrink(A){let q=A==null?1:A;this._flexShrink=q,this.yogaNode.setFlexShrink(q),this.requestRender()}set flexDirection(A){this.yogaNode.setFlexDirection(yj(A)),this.requestRender()}set flexWrap(A){this.yogaNode.setFlexWrap(fj(A)),this.requestRender()}set alignItems(A){this.yogaNode.setAlignItems(Dj(A)),this.requestRender()}set justifyContent(A){this.yogaNode.setJustifyContent(bj(A)),this.requestRender()}set alignSelf(A){this.yogaNode.setAlignSelf(kj(A)),this.requestRender()}set flexBasis(A){if(DY(A))this.yogaNode.setFlexBasis(A),this.requestRender()}set minWidth(A){if(Gg(A))this.yogaNode.setMinWidth(A),this.requestRender()}set maxWidth(A){if(Gg(A))this.yogaNode.setMaxWidth(A),this.requestRender()}set minHeight(A){if(Gg(A))this.yogaNode.setMinHeight(A),this.requestRender()}set maxHeight(A){if(Gg(A))this.yogaNode.setMaxHeight(A),this.requestRender()}set margin(A){if(Vq(A)){let q=this.yogaNode;q.setMargin(t.Top,A),q.setMargin(t.Right,A),q.setMargin(t.Bottom,A),q.setMargin(t.Left,A),this.requestRender()}}set marginTop(A){if(Vq(A))this.yogaNode.setMargin(t.Top,A),this.requestRender()}set marginRight(A){if(Vq(A))this.yogaNode.setMargin(t.Right,A),this.requestRender()}set marginBottom(A){if(Vq(A))this.yogaNode.setMargin(t.Bottom,A),this.requestRender()}set marginLeft(A){if(Vq(A))this.yogaNode.setMargin(t.Left,A),this.requestRender()}set padding(A){if(Wq(A)){let q=this.yogaNode;q.setPadding(t.Top,A),q.setPadding(t.Right,A),q.setPadding(t.Bottom,A),q.setPadding(t.Left,A),this.requestRender()}}set paddingTop(A){if(Wq(A))this.yogaNode.setPadding(t.Top,A),this.requestRender()}set paddingRight(A){if(Wq(A))this.yogaNode.setPadding(t.Right,A),this.requestRender()}set paddingBottom(A){if(Wq(A))this.yogaNode.setPadding(t.Bottom,A),this.requestRender()}set paddingLeft(A){if(Wq(A))this.yogaNode.setPadding(t.Left,A),this.requestRender()}getLayoutNode(){return this.yogaNode}updateFromLayout(){let A=this.yogaNode.getComputedLayout(),q=this._x,g=this._y,E=this._widthValue,F=this._heightValue;this._x=A.left,this._y=A.top;let K=Math.max(A.width,1),Z=Math.max(A.height,1),j=E!==K||F!==Z;if(this._widthValue=K,this._heightValue=Z,j)this.onLayoutResize(K,Z);if(q!==this._x||g!==this._y){if(this.parent)this.parent.childrenPrimarySortDirty=!0}}onLayoutResize(A,q){if(this._visible)this.handleFrameBufferResize(A,q),this.onResize(A,q),this.requestRender()}handleFrameBufferResize(A,q){if(!this.buffered)return;if(A<=0||q<=0)return;if(this.frameBuffer)this.frameBuffer.resize(A,q);else this.createFrameBuffer()}createFrameBuffer(){let A=this.width,q=this.height;if(A<=0||q<=0)return;try{let g=this._ctx.widthMethod;this.frameBuffer=Og.create(A,q,g,{respectAlpha:!0,id:`framebuffer-${this.id}`})}catch(g){console.error(`Failed to create frame buffer for ${this.id}:`,g),this.frameBuffer=null}}onResize(A,q){this.onSizeChange?.(),this.emit("resize")}replaceParent(A){if(A.parent)A.parent.remove(A.id);A.parent=this}add(A,q){if(!A)return-1;let g=cj(this._ctx,A);if(!g)return-1;if(g.isDestroyed)return console.warn(`Renderable with id ${g.id} was already destroyed, skipping add`),-1;let E=q!==void 0?this._childrenInLayoutOrder[q]:void 0;if(E)return this.insertBefore(g,E);if(g.parent===this)this.yogaNode.removeChild(g.getLayoutNode()),this._childrenInLayoutOrder.splice(this._childrenInLayoutOrder.indexOf(g),1);else{if(this.replaceParent(g),this.needsZIndexSort=!0,this.renderableMapById.set(g.id,g),this._childrenInZIndexOrder.push(g),typeof g.onLifecyclePass==="function")this._ctx.registerLifecyclePass(g);if(g._liveCount>0)this.propagateLiveCount(g._liveCount)}let F=g.getLayoutNode(),K=this._childrenInLayoutOrder.length;return this._childrenInLayoutOrder.push(g),this.yogaNode.insertChild(F,K),this.childrenPrimarySortDirty=!0,this._shouldUpdateBefore.add(g),this.requestRender(),K}insertBefore(A,q){if(!q)return this.add(A);if(!A)return-1;let g=cj(this._ctx,A);if(!g)return-1;if(g.isDestroyed)return console.warn(`Renderable with id ${g.id} was already destroyed, skipping insertBefore`),-1;if(!R6(q))throw Error("Anchor must be a Renderable");if(q.isDestroyed)return console.warn(`Anchor with id ${q.id} was already destroyed, skipping insertBefore`),-1;if(!this.renderableMapById.has(q.id))return console.warn(`Anchor with id ${q.id} does not exist within the parent ${this.id}, skipping insertBefore`),-1;if(g===q||g.id===q.id)return console.warn(`Anchor is the same as the node ${g.id} being inserted, skipping insertBefore`),-1;if(g.parent===this)this.yogaNode.removeChild(g.getLayoutNode()),this._childrenInLayoutOrder.splice(this._childrenInLayoutOrder.indexOf(g),1);else{if(this.replaceParent(g),this.needsZIndexSort=!0,this.renderableMapById.set(g.id,g),this._childrenInZIndexOrder.push(g),typeof g.onLifecyclePass==="function")this._ctx.registerLifecyclePass(g);if(g._liveCount>0)this.propagateLiveCount(g._liveCount)}this.childrenPrimarySortDirty=!0;let E=this._childrenInLayoutOrder.indexOf(q),F=Math.max(0,Math.min(E,this._childrenInLayoutOrder.length));return this._childrenInLayoutOrder.splice(F,0,g),this.yogaNode.insertChild(g.getLayoutNode(),F),this._shouldUpdateBefore.add(g),this.requestRender(),F}getRenderable(A){return this.renderableMapById.get(A)}remove(A){if(!A)return;if(this.renderableMapById.has(A)){let q=this.renderableMapById.get(A);if(q){if(q._liveCount>0)this.propagateLiveCount(-q._liveCount);let g=q.getLayoutNode();this.yogaNode.removeChild(g),this.requestRender(),q.onRemove(),q.parent=null,this._ctx.unregisterLifecyclePass(q),this.renderableMapById.delete(A);let E=this._childrenInLayoutOrder.findIndex((K)=>K.id===A);if(E!==-1)this._childrenInLayoutOrder.splice(E,1);let F=this._childrenInZIndexOrder.findIndex((K)=>K.id===A);if(F!==-1)this._childrenInZIndexOrder.splice(F,1);this.childrenPrimarySortDirty=!0}}}onRemove(){}getChildren(){return[...this._childrenInLayoutOrder]}getChildrenCount(){return this._childrenInLayoutOrder.length}updateLayout(A,q=[]){if(!this.visible)return;if(this.onUpdate(A),this._isDestroyed)return;if(this.updateFromLayout(),this._shouldUpdateBefore.size>0){for(let K of this._shouldUpdateBefore)if(!K.isDestroyed)K.updateFromLayout();this._shouldUpdateBefore.clear()}if(this._isDestroyed)return;let g=this._opacity<1;if(g)q.push({action:"pushOpacity",opacity:this._opacity});q.push({action:"render",renderable:this}),this.ensureZIndexSorted();let E=this._overflow!=="visible"&&this.width>0&&this.height>0;if(E){let K=this.getScissorRect();q.push({action:"pushScissorRect",x:K.x,y:K.y,width:K.width,height:K.height,screenX:this.x,screenY:this.y})}let F=this._getVisibleChildren();for(let K of this._childrenInZIndexOrder){if(!F.includes(K.num)){K.updateFromLayout();continue}K.updateLayout(A,q)}if(E)q.push({action:"popScissorRect"});if(g)q.push({action:"popOpacity"})}render(A,q){let g=A;if(this.buffered&&this.frameBuffer)g=this.frameBuffer;if(this.renderBefore)this.renderBefore.call(this,g,q);if(this.renderSelf(g,q),this.renderAfter)this.renderAfter.call(this,g,q);if(this.markClean(),this._ctx.addToHitGrid(this.x,this.y,this.width,this.height,this.num),this.buffered&&this.frameBuffer)A.drawFrameBuffer(this.x,this.y,this.frameBuffer)}_getVisibleChildren(){return this._childrenInZIndexOrder.map((A)=>A.num)}onUpdate(A){}getScissorRect(){return{x:this.buffered?0:this.x,y:this.buffered?0:this.y,width:this.width,height:this.height}}renderSelf(A,q){}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)return;if(this._isDestroyed=!0,this.parent)this.parent.remove(this.id);if(this.frameBuffer)this.frameBuffer.destroy(),this.frameBuffer=null;for(let A of this._childrenInLayoutOrder)this.remove(A.id);this._childrenInLayoutOrder=[],this.renderableMapById.clear(),kA.renderablesByNumber.delete(this.num),this.blur(),this.removeAllListeners(),this.destroySelf();try{this.yogaNode.free()}catch(A){}}destroyRecursively(){let A=[...this._childrenInLayoutOrder];for(let q of A)q.destroyRecursively();this.destroy()}destroySelf(){}processMouseEvent(A){if(this._mouseListener?.call(this,A),this._mouseListeners[A.type]?.call(this,A),this.onMouseEvent(A),this.parent&&!A.propagationStopped)this.parent.processMouseEvent(A)}onMouseEvent(A){}set onMouse(A){if(A)this._mouseListener=A;else this._mouseListener=null}set onMouseDown(A){if(A)this._mouseListeners.down=A;else delete this._mouseListeners.down}set onMouseUp(A){if(A)this._mouseListeners.up=A;else delete this._mouseListeners.up}set onMouseMove(A){if(A)this._mouseListeners.move=A;else delete this._mouseListeners.move}set onMouseDrag(A){if(A)this._mouseListeners.drag=A;else delete this._mouseListeners.drag}set onMouseDragEnd(A){if(A)this._mouseListeners["drag-end"]=A;else delete this._mouseListeners["drag-end"]}set onMouseDrop(A){if(A)this._mouseListeners.drop=A;else delete this._mouseListeners.drop}set onMouseOver(A){if(A)this._mouseListeners.over=A;else delete this._mouseListeners.over}set onMouseOut(A){if(A)this._mouseListeners.out=A;else delete this._mouseListeners.out}set onMouseScroll(A){if(A)this._mouseListeners.scroll=A;else delete this._mouseListeners.scroll}set onPaste(A){this._pasteListener=A}get onPaste(){return this._pasteListener}set onKeyDown(A){if(A)this._keyListeners.down=A;else delete this._keyListeners.down}get onKeyDown(){return this._keyListeners.down}set onSizeChange(A){this._sizeChangeListener=A}get onSizeChange(){return this._sizeChangeListener}applyEventOptions(A){this.onMouse=A.onMouse,this.onMouseDown=A.onMouseDown,this.onMouseUp=A.onMouseUp,this.onMouseMove=A.onMouseMove,this.onMouseDrag=A.onMouseDrag,this.onMouseDragEnd=A.onMouseDragEnd,this.onMouseDrop=A.onMouseDrop,this.onMouseOver=A.onMouseOver,this.onMouseOut=A.onMouseOut,this.onMouseScroll=A.onMouseScroll,this.onPaste=A.onPaste,this.onKeyDown=A.onKeyDown,this.onSizeChange=A.onSizeChange}}class FU extends kA{renderList=[];constructor(A){super(A,{id:"__root__",zIndex:0,visible:!0,width:A.width,height:A.height,enableLayout:!0});if(this.yogaNode)this.yogaNode.free();this.yogaNode=lK.Node.create(rK),this.yogaNode.setWidth(A.width),this.yogaNode.setHeight(A.height),this.yogaNode.setFlexDirection(qq.Column),this.calculateLayout()}render(A,q){if(!this.visible)return;for(let g of this._ctx.getLifecyclePasses())g.onLifecyclePass?.call(g);if(this.yogaNode.isDirty())this.calculateLayout();this.renderList.length=0,this.updateLayout(q,this.renderList),this._ctx.clearHitGridScissorRects();for(let g=1;g<this.renderList.length;g++){let E=this.renderList[g];switch(E.action){case"render":if(!E.renderable.isDestroyed)E.renderable.render(A,q);break;case"pushScissorRect":A.pushScissorRect(E.x,E.y,E.width,E.height),this._ctx.pushHitGridScissorRect(E.screenX,E.screenY,E.width,E.height);break;case"popScissorRect":A.popScissorRect(),this._ctx.popHitGridScissorRect();break;case"pushOpacity":A.pushOpacity(E.opacity);break;case"popOpacity":A.popOpacity();break}}}propagateLiveCount(A){let q=this._liveCount;if(this._liveCount+=A,q===0&&this._liveCount>0)this._ctx.requestLive();else if(q>0&&this._liveCount===0)this._ctx.dropLive()}calculateLayout(){this.yogaNode.calculateLayout(this.width,this.height,P6.LTR),this.emit("layout-changed")}resize(A,q){this.width=A,this.height=q,this.emit("resized",{width:A,height:q})}}var O9=Symbol.for("@opentui/core/VNode");function J9(A){return typeof A==="function"&&A.prototype&&kA.prototype.isPrototypeOf(A.prototype)}function JQ(A){let q=[];for(let g of A)if(Array.isArray(g))q.push(...JQ(g));else if(g!==null&&g!==void 0&&g!==!1)q.push(g);return q}function MQ(A){return A&&A[O9]}function cj(A,q){if(R6(q))return q;if(MQ(q))return uK(A,q);return console.warn("maybeMakeRenderable received an invalid node",Q9.inspect(q,{depth:2})),null}function dj(A,q){if(!q||Object.keys(q).length===0)return A;let g=new Map,E=(K)=>{if(g.has(K)){let j=g.get(K);if(j!==void 0)return j}let Z=A.findDescendantById(K);if(Z)g.set(K,Z);return Z};return new Proxy(A,{get(K,Z,j){if(typeof Z==="string"&&q[Z]){let U=E(q[Z]);if(U){let O=U[Z];if(typeof O==="function")return O.bind(U);return O}}return Reflect.get(K,Z,j)},set(K,Z,j,U){if(typeof Z==="string"&&q[Z]){let O=E(q[Z]);if(O)return Reflect.set(O,Z,j)}return Reflect.set(K,Z,j,U)}})}function uK(A,q){if(R6(q))return q;if(!q||typeof q!=="object")throw TypeError("mount() received an invalid vnode");let g=q,{type:E,props:F}=g,K=JQ(g.children||[]),Z=g.__delegateMap;if(J9(E)){let O=new E(A,F||{});for(let J of K)if(R6(J))O.add(J);else{let $=uK(A,J);O.add($)}let Y=dj(O,Z),M=g.__pendingCalls;if(M)for(let J of M)if(J.isProperty)Y[J.method]=J.args[0];else Y[J.method].apply(Y,J.args);return Y}let j=E(F||{},K),U=uK(A,j);return dj(U,Z)}class $Q extends H9{output=[];constructor(){super()}get size(){return this.output.length}write(A,q){this.output.push({stream:A,output:q}),this.emit("write",A,q)}claimOutput(){let A=this.output.map((q)=>q.output).join("");return this.clear(),A}clear(){this.output=[]}}class pj extends X9{stream;capture;isTTY=!0;columns=process.stdout.columns||80;rows=process.stdout.rows||24;constructor(A,q){super();this.stream=A,this.capture=q}_write(A,q,g){let E=A.toString();this.capture.write(this.stream,E),g()}getColorDepth(){return process.stdout.getColorDepth?.()||8}}var xE={enter:"return",esc:"escape"};function TE(A,q){return{...A,...q}}function mg(A,q){let g=new Map;for(let E of A){let F=cg(E);g.set(F,E)}for(let E of q){let F=cg(E);g.set(F,E)}return Array.from(g.values())}function cg(A){return`${A.name}:${A.ctrl?1:0}:${A.shift?1:0}:${A.meta?1:0}:${A.super?1:0}`}function fg(A,q){let g=new Map,E=q||{};for(let F of A){let K=cg(F);g.set(K,F.action)}for(let F of A){let K=E[F.name]||F.name;if(K!==F.name){let Z=cg({...F,name:K});g.set(Z,F.action)}}return g}function L9(A){let q=[];if(A.ctrl)q.push("ctrl");if(A.shift)q.push("shift");if(A.meta)q.push("meta");if(A.super)q.push("super");return q.push(A.name),q.join("+")}function V9(){let q=Error().stack?.split(`
|
|
15
|
-
`).slice(5)||[];if(!q.length)return null;let g=q[0].trim(),E=/at\s+(?:([\w$.<>]+)\s+\()?((?:\/|[A-Za-z]:\\)[^:]+):(\d+):(\d+)\)?/,F=g.match(E);if(!F)return null;let K=F[1]||"<anonymous>",Z=F[2],j=Z.split(/[\\/]/).pop()||"<unknown>",U=parseInt(F[3],10)||0,
|
|
11
|
+
`)K++;let Z=q.substring(F,K),j=Bun.stringWidth(Z);if(g+j<A)g+=j,F=K;else{for(let U=F;U<K&&g<A;U++){let G=Bun.stringWidth(q[U]);g+=G}break}}return A-E}create(A){if(this.destroyed)throw new Error("ExtmarksController is destroyed");let q=this.nextId++,g=A.typeId??0,E={id:q,start:A.start,end:A.end,virtual:A.virtual??!1,styleId:A.styleId,priority:A.priority,data:A.data,typeId:g};if(this.extmarks.set(q,E),!this.extmarksByTypeId.has(g))this.extmarksByTypeId.set(g,new Set);if(this.extmarksByTypeId.get(g).add(q),A.metadata!==void 0)this.metadata.set(q,A.metadata);return this.updateHighlights(),q}delete(A){if(this.destroyed)throw new Error("ExtmarksController is destroyed");if(!this.extmarks.get(A))return!1;return this.deleteExtmarkById(A),this.updateHighlights(),!0}get(A){if(this.destroyed)return null;return this.extmarks.get(A)??null}getAll(){if(this.destroyed)return[];return Array.from(this.extmarks.values())}getVirtual(){if(this.destroyed)return[];return Array.from(this.extmarks.values()).filter((A)=>A.virtual)}getAtOffset(A){if(this.destroyed)return[];return Array.from(this.extmarks.values()).filter((q)=>A>=q.start&&A<q.end)}getAllForTypeId(A){if(this.destroyed)return[];let q=this.extmarksByTypeId.get(A);if(!q)return[];return Array.from(q).map((g)=>this.extmarks.get(g)).filter((g)=>g!==void 0)}clear(){if(this.destroyed)return;this.extmarks.clear(),this.extmarksByTypeId.clear(),this.metadata.clear(),this.updateHighlights()}saveSnapshot(){this.history.saveSnapshot(this.extmarks,this.nextId)}restoreSnapshot(A){this.extmarks=new Map(Array.from(A.extmarks.entries()).map(([q,g])=>[q,{...g}])),this.nextId=A.nextId,this.updateHighlights()}wrapUndoRedo(){this.editBuffer.undo=()=>{if(this.destroyed)return this.originalUndo();if(!this.history.canUndo())return this.originalUndo();let A={extmarks:new Map(Array.from(this.extmarks.entries()).map(([g,E])=>[g,{...E}])),nextId:this.nextId};this.history.pushRedo(A);let q=this.history.undo();return this.restoreSnapshot(q),this.originalUndo()},this.editBuffer.redo=()=>{if(this.destroyed)return this.originalRedo();if(!this.history.canRedo())return this.originalRedo();let A={extmarks:new Map(Array.from(this.extmarks.entries()).map(([g,E])=>[g,{...E}])),nextId:this.nextId};this.history.pushUndo(A);let q=this.history.redo();return this.restoreSnapshot(q),this.originalRedo()}}registerType(A){if(this.destroyed)throw new Error("ExtmarksController is destroyed");let q=this.typeNameToId.get(A);if(q!==void 0)return q;let g=this.nextTypeId++;return this.typeNameToId.set(A,g),this.typeIdToName.set(g,A),g}getTypeId(A){if(this.destroyed)return null;return this.typeNameToId.get(A)??null}getTypeName(A){if(this.destroyed)return null;return this.typeIdToName.get(A)??null}getMetadataFor(A){if(this.destroyed)return;return this.metadata.get(A)}destroy(){if(this.destroyed)return;this.editBuffer.moveCursorLeft=this.originalMoveCursorLeft,this.editBuffer.moveCursorRight=this.originalMoveCursorRight,this.editBuffer.setCursorByOffset=this.originalSetCursorByOffset,this.editorView.moveUpVisual=this.originalMoveUpVisual,this.editorView.moveDownVisual=this.originalMoveDownVisual,this.editBuffer.deleteCharBackward=this.originalDeleteCharBackward,this.editBuffer.deleteChar=this.originalDeleteChar,this.editBuffer.insertText=this.originalInsertText,this.editBuffer.insertChar=this.originalInsertChar,this.editBuffer.deleteRange=this.originalDeleteRange,this.editBuffer.setText=this.originalSetText,this.editBuffer.replaceText=this.originalReplaceText,this.editBuffer.clear=this.originalClear,this.editBuffer.newLine=this.originalNewLine,this.editBuffer.deleteLine=this.originalDeleteLine,this.editorView.deleteSelectedText=this.originalEditorViewDeleteSelectedText,this.editBuffer.undo=this.originalUndo,this.editBuffer.redo=this.originalRedo,this.extmarks.clear(),this.extmarksByTypeId.clear(),this.metadata.clear(),this.typeNameToId.clear(),this.typeIdToName.clear(),this.history.clear(),this.destroyed=!0}}function dQ(A,q){return new WU(A,q)}var oK=/\x1b]4;(\d+);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g,gQ=/\x1b](\d+);(?:(?:rgb:)([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)|#([0-9a-fA-F]{6}))(?:\x07|\x1b\\)/g;function ij(A){let q=parseInt(A,16),g=(1<<4*A.length)-1;return Math.round(q/g*255).toString(16).padStart(2,"0")}function EQ(A,q,g,E){if(E)return`#${E.toLowerCase()}`;if(A&&q&&g)return`#${ij(A)}${ij(q)}${ij(g)}`;return"#000000"}function x$(A){return`\x1BPtmux;${A.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`}class NU{stdin;stdout;writeFn;activeListeners=[];activeTimers=[];inLegacyTmux;constructor(A,q,g,E){this.stdin=A,this.stdout=q,this.writeFn=g||((F)=>q.write(F)),this.inLegacyTmux=E??!1}writeOsc(A){let q=this.inLegacyTmux?x$(A):A;return this.writeFn(q)}cleanup(){for(let{event:A,handler:q}of this.activeListeners)this.stdin.removeListener(A,q);this.activeListeners=[];for(let A of this.activeTimers)clearTimeout(A);this.activeTimers=[]}async detectOSCSupport(A=300){let q=this.stdout,g=this.stdin;if(!q.isTTY||!g.isTTY)return!1;return new Promise((E)=>{let F="",K=(G)=>{if(F+=G.toString(),oK.lastIndex=0,oK.test(F))j(),E(!0)},Z=()=>{j(),E(!1)},j=()=>{clearTimeout(U),g.removeListener("data",K);let G=this.activeListeners.findIndex((M)=>M.handler===K);if(G!==-1)this.activeListeners.splice(G,1);let Y=this.activeTimers.indexOf(U);if(Y!==-1)this.activeTimers.splice(Y,1)},U=setTimeout(Z,A);this.activeTimers.push(U),g.on("data",K),this.activeListeners.push({event:"data",handler:K}),this.writeOsc("\x1B]4;0;?\x07")})}async queryPalette(A,q=1200){let g=this.stdout,E=this.stdin,F=new Map;if(A.forEach((K)=>F.set(K,null)),!g.isTTY||!E.isTTY)return F;return new Promise((K)=>{let Z="",j=Date.now(),U=null,G=($)=>{Z+=$.toString(),j=Date.now();let _;oK.lastIndex=0;while(_=oK.exec(Z)){let N=parseInt(_[1],10);if(F.has(N))F.set(N,EQ(_[2],_[3],_[4],_[5]))}if(Z.length>8192)Z=Z.slice(-4096);if([...F.values()].filter((N)=>N!==null).length===F.size){M(),K(F);return}if(U)clearTimeout(U);if(U=setTimeout(()=>{M(),K(F)},150),U)this.activeTimers.push(U)},Y=()=>{M(),K(F)},M=()=>{if(clearTimeout(O),U)clearTimeout(U);E.removeListener("data",G);let $=this.activeListeners.findIndex((x)=>x.handler===G);if($!==-1)this.activeListeners.splice($,1);let _=this.activeTimers.indexOf(O);if(_!==-1)this.activeTimers.splice(_,1);if(U){let x=this.activeTimers.indexOf(U);if(x!==-1)this.activeTimers.splice(x,1)}},O=setTimeout(Y,q);this.activeTimers.push(O),E.on("data",G),this.activeListeners.push({event:"data",handler:G}),this.writeOsc(A.map(($)=>`\x1B]4;${$};?\x07`).join(""))})}async querySpecialColors(A=1200){let q=this.stdout,g=this.stdin,E={10:null,11:null,12:null,13:null,14:null,15:null,16:null,17:null,19:null};if(!q.isTTY||!g.isTTY)return E;return new Promise((F)=>{let K="",Z=null,j=(M)=>{K+=M.toString();let O;gQ.lastIndex=0;while(O=gQ.exec(K)){let _=parseInt(O[1],10);if(_ in E)E[_]=EQ(O[2],O[3],O[4],O[5])}if(K.length>8192)K=K.slice(-4096);if(Object.values(E).filter((_)=>_!==null).length===Object.keys(E).length){G(),F(E);return}if(Z)clearTimeout(Z);if(Z=setTimeout(()=>{G(),F(E)},150),Z)this.activeTimers.push(Z)},U=()=>{G(),F(E)},G=()=>{if(clearTimeout(Y),Z)clearTimeout(Z);g.removeListener("data",j);let M=this.activeListeners.findIndex(($)=>$.handler===j);if(M!==-1)this.activeListeners.splice(M,1);let O=this.activeTimers.indexOf(Y);if(O!==-1)this.activeTimers.splice(O,1);if(Z){let $=this.activeTimers.indexOf(Z);if($!==-1)this.activeTimers.splice($,1)}},Y=setTimeout(U,A);this.activeTimers.push(Y),g.on("data",j),this.activeListeners.push({event:"data",handler:j}),this.writeOsc(["\x1B]10;?\x07","\x1B]11;?\x07","\x1B]12;?\x07","\x1B]13;?\x07","\x1B]14;?\x07","\x1B]15;?\x07","\x1B]16;?\x07","\x1B]17;?\x07","\x1B]19;?\x07"].join(""))})}async detect(A){let{timeout:q=5000,size:g=16}=A||{};if(!await this.detectOSCSupport())return{palette:Array(g).fill(null),defaultForeground:null,defaultBackground:null,cursorColor:null,mouseForeground:null,mouseBackground:null,tekForeground:null,tekBackground:null,highlightBackground:null,highlightForeground:null};let F=[...Array(g).keys()],[K,Z]=await Promise.all([this.queryPalette(F,q),this.querySpecialColors(q)]);return{palette:[...Array(g).keys()].map((j)=>K.get(j)??null),defaultForeground:Z[10],defaultBackground:Z[11],cursorColor:Z[12],mouseForeground:Z[13],mouseBackground:Z[14],tekForeground:Z[15],tekBackground:Z[16],highlightBackground:Z[17],highlightForeground:Z[19]}}}function pQ(A,q,g,E){return new NU(A,q,g,E)}function a$(A,q,g){let E=0;if(A===!0)E|=15;else if(Array.isArray(A)){if(A.includes("top"))E|=8;if(A.includes("right"))E|=4;if(A.includes("bottom"))E|=2;if(A.includes("left"))E|=1}if(q)E|=16;let K={left:0,center:1,right:2}[g];return E|=K<<5,E}class $g{static fbIdCounter=0;id;lib;bufferPtr;_width;_height;_widthMethod;respectAlpha=!1;_rawBuffers=null;_destroyed=!1;get ptr(){return this.bufferPtr}guard(){if(this._destroyed)throw new Error(`Buffer ${this.id} is destroyed`)}get buffers(){if(this.guard(),this._rawBuffers===null){let A=this._width*this._height,q=this.lib.bufferGetCharPtr(this.bufferPtr),g=this.lib.bufferGetFgPtr(this.bufferPtr),E=this.lib.bufferGetBgPtr(this.bufferPtr),F=this.lib.bufferGetAttributesPtr(this.bufferPtr);this._rawBuffers={char:new Uint32Array(eK(q,0,A*4)),fg:new Float32Array(eK(g,0,A*4*4)),bg:new Float32Array(eK(E,0,A*4*4)),attributes:new Uint32Array(eK(F,0,A*4))}}return this._rawBuffers}constructor(A,q,g,E,F){this.id=F.id||`fb_${$g.fbIdCounter++}`,this.lib=A,this.respectAlpha=F.respectAlpha||!1,this._width=g,this._height=E,this._widthMethod=F.widthMethod||"unicode",this.bufferPtr=q}static create(A,q,g,E={}){let F=Xq(),K=E.respectAlpha||!1,Z=E.id&&E.id.trim()!==""?E.id:"unnamed buffer";return F.createOptimizedBuffer(A,q,g,K,Z)}get widthMethod(){return this._widthMethod}get width(){return this._width}get height(){return this._height}setRespectAlpha(A){this.guard(),this.lib.bufferSetRespectAlpha(this.bufferPtr,A),this.respectAlpha=A}getNativeId(){return this.guard(),this.lib.bufferGetId(this.bufferPtr)}getRealCharBytes(A=!1){this.guard();let q=this.lib.bufferGetRealCharSize(this.bufferPtr),g=new Uint8Array(q),E=this.lib.bufferWriteResolvedChars(this.bufferPtr,g,A);return g.slice(0,E)}getSpanLines(){this.guard();let{char:A,fg:q,bg:g,attributes:E}=this.buffers,F=[];for(let K=0;K<this._height;K++){let Z=[],j=null;for(let U=0;U<this._width;U++){let G=K*this._width+U,Y=A[G],M=OA.fromValues(q[G*4],q[G*4+1],q[G*4+2],q[G*4+3]),O=OA.fromValues(g[G*4],g[G*4+1],g[G*4+2],g[G*4+3]),$=E[G]&255,_=Y>0?String.fromCodePoint(Y):" ";if(j&&j.fg.equals(M)&&j.bg.equals(O)&&j.attributes===$)j.text+=_,j.width+=1;else{if(j)Z.push(j);j={text:_,fg:M,bg:O,attributes:$,width:1}}}if(j)Z.push(j);F.push({spans:Z})}return F}clear(A=OA.fromValues(0,0,0,1)){this.guard(),this.lib.bufferClear(this.bufferPtr,A)}setCell(A,q,g,E,F,K=0){this.guard(),this.lib.bufferSetCell(this.bufferPtr,A,q,g,E,F,K)}setCellWithAlphaBlending(A,q,g,E,F,K=0){this.guard(),this.lib.bufferSetCellWithAlphaBlending(this.bufferPtr,A,q,g,E,F,K)}drawText(A,q,g,E,F,K=0,Z){if(this.guard(),!Z){this.lib.bufferDrawText(this.bufferPtr,A,q,g,E,F,K);return}let{start:j,end:U}=Z,G,Y;if(Z.bgColor)G=Z.bgColor,Y=Z.fgColor||E;else{let M=F||OA.fromValues(0,0,0,0);Y=M.a>0?M:OA.fromValues(0,0,0,1),G=E}if(j>0){let M=A.slice(0,j);this.lib.bufferDrawText(this.bufferPtr,M,q,g,E,F,K)}if(U>j){let M=A.slice(j,U);this.lib.bufferDrawText(this.bufferPtr,M,q+j,g,Y,G,K)}if(U<A.length){let M=A.slice(U);this.lib.bufferDrawText(this.bufferPtr,M,q+U,g,E,F,K)}}fillRect(A,q,g,E,F){this.lib.bufferFillRect(this.bufferPtr,A,q,g,E,F)}drawFrameBuffer(A,q,g,E,F,K,Z){this.guard(),this.lib.drawFrameBuffer(this.bufferPtr,A,q,g.ptr,E,F,K,Z)}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyOptimizedBuffer(this.bufferPtr)}drawTextBuffer(A,q,g){this.guard(),this.lib.bufferDrawTextBufferView(this.bufferPtr,A.ptr,q,g)}drawEditorView(A,q,g){this.guard(),this.lib.bufferDrawEditorView(this.bufferPtr,A.ptr,q,g)}drawSuperSampleBuffer(A,q,g,E,F,K){this.guard(),this.lib.bufferDrawSuperSampleBuffer(this.bufferPtr,A,q,g,E,F,K)}drawPackedBuffer(A,q,g,E,F,K){this.guard(),this.lib.bufferDrawPackedBuffer(this.bufferPtr,A,q,g,E,F,K)}drawGrayscaleBuffer(A,q,g,E,F,K=null,Z=null){this.guard(),this.lib.bufferDrawGrayscaleBuffer(this.bufferPtr,A,q,KQ(g),E,F,K,Z)}drawGrayscaleBufferSupersampled(A,q,g,E,F,K=null,Z=null){this.guard(),this.lib.bufferDrawGrayscaleBufferSupersampled(this.bufferPtr,A,q,KQ(g),E,F,K,Z)}resize(A,q){if(this.guard(),this._width===A&&this._height===q)return;this._width=A,this._height=q,this._rawBuffers=null,this.lib.bufferResize(this.bufferPtr,A,q)}drawBox(A){this.guard();let q=jZ(A.borderStyle,"single"),g=A.customBorderChars??RQ[q],E=a$(A.border,A.shouldFill??!1,A.titleAlignment||"left");this.lib.bufferDrawBox(this.bufferPtr,A.x,A.y,A.width,A.height,g,E,A.borderColor,A.backgroundColor,A.title??null)}pushScissorRect(A,q,g,E){this.guard(),this.lib.bufferPushScissorRect(this.bufferPtr,A,q,g,E)}popScissorRect(){this.guard(),this.lib.bufferPopScissorRect(this.bufferPtr)}clearScissorRects(){this.guard(),this.lib.bufferClearScissorRects(this.bufferPtr)}pushOpacity(A){this.guard(),this.lib.bufferPushOpacity(this.bufferPtr,Math.max(0,Math.min(1,A)))}popOpacity(){this.guard(),this.lib.bufferPopOpacity(this.bufferPtr)}getCurrentOpacity(){return this.guard(),this.lib.bufferGetCurrentOpacity(this.bufferPtr)}clearOpacity(){this.guard(),this.lib.bufferClearOpacity(this.bufferPtr)}encodeUnicode(A){return this.guard(),this.lib.encodeUnicode(A,this._widthMethod)}freeUnicode(A){this.guard(),this.lib.freeUnicode(A)}drawChar(A,q,g,E,F,K=0){this.guard(),this.lib.bufferDrawChar(this.bufferPtr,A,q,g,E,F,K)}}function C6(...A){let q=A.join(" ");throw console.error("FATAL ERROR:",q),new Error(q)}var wA=process.arch==="x64"||process.arch==="arm64"?8:4,ug={u8:1,bool_u8:1,bool_u32:4,u16:2,i16:2,u32:4,u64:8,f32:4,f64:8,pointer:wA,i32:4},h$=Object.keys(ug);function AZ(A){return typeof A==="string"&&h$.includes(A)}var ZQ={...ug},z$={u8:(A,q)=>A.getUint8(q),bool_u8:(A,q)=>Boolean(A.getUint8(q)),bool_u32:(A,q)=>Boolean(A.getUint32(q,!0)),u16:(A,q)=>A.getUint16(q,!0),i16:(A,q)=>A.getInt16(q,!0),u32:(A,q)=>A.getUint32(q,!0),u64:(A,q)=>A.getBigUint64(q,!0),f32:(A,q)=>A.getFloat32(q,!0),f64:(A,q)=>A.getFloat64(q,!0),i32:(A,q)=>A.getInt32(q,!0),pointer:(A,q)=>wA===8?A.getBigUint64(q,!0):BigInt(A.getUint32(q,!0))};function jQ(A){return typeof A==="object"&&A!==null&&A.__type==="objectPointer"}function UQ(A,q){return A+(q-1)&~(q-1)}function GQ(A){throw new TypeError(`Invalid enum value: ${A}`)}function B$(A,q="u32"){let g=Object.fromEntries(Object.entries(A).map(([E,F])=>[F,E]));return{__type:"enum",type:q,to(E){return typeof E==="number"?E:A[E]??GQ(String(E))},from(E){return g[E]??GQ(String(E))},enum:A}}function YQ(A){return typeof A==="object"&&A.__type==="enum"}function sj(A){return typeof A==="object"&&A.__type==="struct"}function k6(A){let q,g;switch(A){case"u8":q=(E,F,K)=>E.setUint8(F,K),g=(E,F)=>E.getUint8(F);break;case"bool_u8":q=(E,F,K)=>E.setUint8(F,K?1:0),g=(E,F)=>Boolean(E.getUint8(F));break;case"bool_u32":q=(E,F,K)=>E.setUint32(F,K?1:0,!0),g=(E,F)=>Boolean(E.getUint32(F,!0));break;case"u16":q=(E,F,K)=>E.setUint16(F,K,!0),g=(E,F)=>E.getUint16(F,!0);break;case"i16":q=(E,F,K)=>E.setInt16(F,K,!0),g=(E,F)=>E.getInt16(F,!0);break;case"u32":q=(E,F,K)=>E.setUint32(F,K,!0),g=(E,F)=>E.getUint32(F,!0);break;case"i32":q=(E,F,K)=>E.setInt32(F,K,!0),g=(E,F)=>E.getInt32(F,!0);break;case"u64":q=(E,F,K)=>E.setBigUint64(F,BigInt(K),!0),g=(E,F)=>E.getBigUint64(F,!0);break;case"f32":q=(E,F,K)=>E.setFloat32(F,K,!0),g=(E,F)=>E.getFloat32(F,!0);break;case"f64":q=(E,F,K)=>E.setFloat64(F,K,!0),g=(E,F)=>E.getFloat64(F,!0);break;case"pointer":q=(E,F,K)=>{wA===8?E.setBigUint64(F,K?BigInt(K):0n,!0):E.setUint32(F,K?Number(K):0,!0)},g=(E,F)=>{let K=wA===8?E.getBigUint64(F,!0):BigInt(E.getUint32(F,!0));return Number(K)};break;default:C6(`Unsupported primitive type: ${A}`)}return{pack:q,unpack:g}}var{pack:fA,unpack:z6}=k6("pointer");function w$(A){let q=new ArrayBuffer(A.length*wA),g=new DataView(q);for(let E=0;E<A.length;E++){let K=A[E]?.ptr??null;fA(g,E*wA,K)}return g}var QQ=new TextEncoder,C$=new TextDecoder;function tq(A,q){let g=0,E=1,F=[],K={},Z=[],j={};for(let[O,$,_={}]of A){if(_.condition&&!_.condition())continue;let x=0,N=0,L,P,k=!1,C=null;if(AZ($))x=ug[$],N=ZQ[$],{pack:L,unpack:P}=k6($);else if(typeof $==="string"&&$==="cstring")x=wA,N=wA,L=(a,z,r)=>{let c=r?fg(QQ.encode(r+"\x00")):null;fA(a,z,c)},P=(a,z)=>{return z6(a,z)};else if(typeof $==="string"&&$==="char*")x=wA,N=wA,L=(a,z,r)=>{let c=r?fg(QQ.encode(r)):null;fA(a,z,c)},P=(a,z)=>{return z6(a,z)},k=!0;else if(YQ($)){let a=$.type;x=ug[a],N=ZQ[a];let{pack:z}=k6(a);L=(r,c,gA)=>{let KA=$.to(gA);z(r,c,KA)},P=(r,c)=>{let gA=z$[a](r,c);return $.from(gA)}}else if(sj($))if(_.asPointer===!0)x=wA,N=wA,L=(a,z,r,c,gA)=>{if(!r){fA(a,z,null);return}let KA=$.pack(r,gA);fA(a,z,fg(KA))},P=(a,z)=>{throw new Error("Not implemented yet")};else x=$.size,N=$.align,L=(a,z,r,c,gA)=>{let KA=$.pack(r,gA),QA=new Uint8Array(KA);new Uint8Array(a.buffer).set(QA,z)},P=(a,z)=>{let r=a.buffer.slice(z,z+x);return $.unpack(r)};else if(jQ($))x=wA,N=wA,L=(a,z,r)=>{let c=r?.ptr??null;if(c===void 0)console.warn(`Field '${O}' expected object with '.ptr' property, but got undefined pointer value from:`,r),fA(a,z,null);else fA(a,z,c)},P=(a,z)=>{return z6(a,z)};else if(Array.isArray($)&&$.length===1&&$[0]!==void 0){let[a]=$;x=wA,N=wA;let z;if(YQ(a))z=ug[a.type],L=(c,gA,KA,QA)=>{if(!KA||KA.length===0){fA(c,gA,null);return}let RA=new ArrayBuffer(KA.length*z),mA=new DataView(RA);for(let SA=0;SA<KA.length;SA++){let Tq=a.to(KA[SA]);mA.setUint32(SA*z,Tq,!0)}fA(c,gA,fg(RA))},P=null,k=!0,C=a;else if(sj(a))z=a.size,L=(c,gA,KA,QA,RA)=>{if(!KA||KA.length===0){fA(c,gA,null);return}let mA=new ArrayBuffer(KA.length*z),SA=new DataView(mA);for(let Tq=0;Tq<KA.length;Tq++)a.packInto(KA[Tq],SA,Tq*z,RA);fA(c,gA,fg(mA))},P=(c,gA)=>{throw new Error("Not implemented yet")};else if(AZ(a)){z=ug[a];let{pack:c}=k6(a);L=(gA,KA,QA)=>{if(!QA||QA.length===0){fA(gA,KA,null);return}let RA=new ArrayBuffer(QA.length*z),mA=new DataView(RA);for(let SA=0;SA<QA.length;SA++)c(mA,SA*z,QA[SA]);fA(gA,KA,fg(RA))},P=null,k=!0,C=a}else if(jQ(a))z=wA,L=(c,gA,KA)=>{if(!KA||KA.length===0){fA(c,gA,null);return}let QA=w$(KA);fA(c,gA,fg(QA.buffer))},P=()=>{throw new Error("not implemented yet")};else throw new Error(`Unsupported array element type for ${O}: ${JSON.stringify(a)}`);let r=Object.values(K).find((c)=>c.lengthOf===O);if(r&&AZ(r.type)){let{pack:c}=k6(r.type);j[O]={elementSize:z,arrayOffset:g,lengthOffset:r.offset,lengthPack:c}}}else throw new Error(`Unsupported field type for ${O}: ${JSON.stringify($)}`);if(g=UQ(g,N),_.unpackTransform){let a=P;P=(z,r)=>_.unpackTransform(a(z,r))}if(_.packTransform){let a=L;L=(z,r,c,gA,KA)=>a(z,r,_.packTransform(c),gA,KA)}if(_.optional){let a=L;if(sj($)&&!_.asPointer)L=(z,r,c,gA,KA)=>{if(c||_.mapOptionalInline)a(z,r,c,gA,KA)};else L=(z,r,c,gA,KA)=>a(z,r,c??0,gA,KA)}if(_.lengthOf){let a=L;L=(z,r,c,gA,KA)=>{let QA=gA[_.lengthOf],RA=0;if(QA)if(typeof QA==="string")RA=Buffer.byteLength(QA);else RA=QA.length;return a(z,r,RA,gA,KA)}}let i;if(_.validate)i=Array.isArray(_.validate)?_.validate:[_.validate];let p={name:O,offset:g,size:x,align:N,validate:i,optional:!!_.optional||!!_.lengthOf||_.default!==void 0,default:_.default,pack:L,unpack:P,type:$,lengthOf:_.lengthOf};if(F.push(p),_.lengthOf)K[_.lengthOf]=p;if(k){let a=typeof $==="string"&&$==="char*"?"char*":C;if(!a)C6(`Internal error: needsLengthOf=true but def is null for ${O}`);Z.push({requester:p,def:a})}g+=x,E=Math.max(E,N)}for(let{requester:O,def:$}of Z){let _=K[O.name];if(!_){if($==="char*")continue;throw new Error(`lengthOf field not found for array field ${O.name}`)}if($==="char*")O.unpack=(x,N)=>{let L=z6(x,N),P=_.unpack(x,_.offset);if(L===0)return null;let k=typeof P==="bigint"?Number(P):P;if(k===0)return"";let C=tj(L,0,k);return C$.decode(C)};else if(AZ($)){let x=ug[$],{unpack:N}=k6($);O.unpack=(L,P)=>{let k=[],C=_.unpack(L,_.offset),i=z6(L,P);if(i===0n&&C>0)throw new Error(`Array field ${O.name} has null pointer but length ${C}.`);if(i===0n||C===0)return[];let p=tj(i,0,C*x),a=new DataView(p);for(let z=0;z<C;z++)k.push(N(a,z*x));return k}}else{let x=$.type==="u32"?4:8;O.unpack=(N,L)=>{let P=[],k=_.unpack(N,_.offset),C=z6(N,L);if(C===0n&&k>0)throw new Error(`Array field ${O.name} has null pointer but length ${k}.`);if(C===0n||k===0)return[];let i=tj(C,0,k*x),p=new DataView(i);for(let a=0;a<k;a++)P.push($.from(p.getUint32(a*x,!0)));return P}}}let U=UQ(g,E),G=F.map((O)=>({name:O.name,offset:O.offset,size:O.size,align:O.align,optional:O.optional,type:O.type,lengthOf:O.lengthOf})),Y=new Map(G.map((O)=>[O.name,O])),M=new Map(Object.entries(j));return{__type:"struct",size:U,align:E,hasMapValue:!!q?.mapValue,layoutByName:Y,arrayFields:M,pack(O,$){let _=new ArrayBuffer(U),x=new DataView(_),N=O;if(q?.mapValue)N=q.mapValue(O);for(let L of F){let P=N[L.name]??L.default;if(!L.optional&&P===void 0)C6(`Packing non-optional field '${L.name}' but value is undefined (and no default provided)`);if(L.validate)for(let k of L.validate)k(P,L.name,{hints:$?.validationHints,input:N});L.pack(x,L.offset,P,N,$)}return x.buffer},packInto(O,$,_,x){let N=O;if(q?.mapValue)N=q.mapValue(O);for(let L of F){let P=N[L.name]??L.default;if(!L.optional&&P===void 0)console.warn(`packInto missing value for non-optional field '${L.name}' at offset ${_+L.offset}. Writing default or zero.`);if(L.validate)for(let k of L.validate)k(P,L.name,{hints:x?.validationHints,input:N});L.pack($,_+L.offset,P,N,x)}},unpack(O){if(O.byteLength<U)C6(`Buffer size (${O.byteLength}) is smaller than struct size (${U}) for unpacking.`);let $=new DataView(O),_=q?.default?{...q.default}:{};for(let x of F){if(!x.unpack)continue;try{_[x.name]=x.unpack($,x.offset)}catch(N){throw console.error(`Error unpacking field '${x.name}' at offset ${x.offset}:`,N),N}}if(q?.reduceValue)return q.reduceValue(_);return _},packList(O,$){if(O.length===0)return new ArrayBuffer(0);let _=new ArrayBuffer(U*O.length),x=new DataView(_);for(let N=0;N<O.length;N++){let L=O[N];if(q?.mapValue)L=q.mapValue(O[N]);for(let P of F){let k=L[P.name]??P.default;if(!P.optional&&k===void 0)C6(`Packing non-optional field '${P.name}' at index ${N} but value is undefined (and no default provided)`);if(P.validate)for(let C of P.validate)C(k,P.name,{hints:$?.validationHints,input:L});P.pack(x,N*U+P.offset,k,L,$)}}return _},unpackList(O,$){if($===0)return[];let _=U*$;if(O.byteLength<_)C6(`Buffer size (${O.byteLength}) is smaller than expected size (${_}) for unpacking ${$} structs.`);let x=new DataView(O),N=[];for(let L=0;L<$;L++){let P=L*U,k=q?.default?{...q.default}:{};for(let C of F){if(!C.unpack)continue;try{k[C.name]=C.unpack(x,P+C.offset)}catch(i){throw console.error(`Error unpacking field '${C.name}' at index ${L}, offset ${P+C.offset}:`,i),i}}if(q?.reduceValue)N.push(q.reduceValue(k));else N.push(k)}return N},describe(){return G}}}var OQ=(A)=>A?k$(A.buffer):null,JQ=(A)=>A?OA.fromArray(new Float32Array(D$(A))):void 0,MQ=tq([["text","char*"],["text_len","u64",{lengthOf:"text"}],["fg","pointer",{optional:!0,packTransform:OQ,unpackTransform:JQ}],["bg","pointer",{optional:!0,packTransform:OQ,unpackTransform:JQ}],["attributes","u32",{optional:!0}]]),qZ=tq([["start","u32"],["end","u32"],["styleId","u32"],["priority","u8",{default:0}],["hlRef","u16",{default:0}]]),Iq=tq([["row","u32"],["col","u32"],["offset","u32"]]),Fq=tq([["visualRow","u32"],["visualCol","u32"],["logicalRow","u32"],["logicalCol","u32"],["offset","u32"]]),y$=B$({wcwidth:0,unicode:1},"u8"),_Q=tq([["kitty_keyboard","bool_u8"],["kitty_graphics","bool_u8"],["rgb","bool_u8"],["unicode",y$],["sgr_pixels","bool_u8"],["color_scheme_updates","bool_u8"],["explicit_width","bool_u8"],["scaled_text","bool_u8"],["sixel","bool_u8"],["focus_tracking","bool_u8"],["sync","bool_u8"],["bracketed_paste","bool_u8"],["hyperlinks","bool_u8"],["explicit_cursor_positioning","bool_u8"],["term_name","char*"],["term_name_len","u64",{lengthOf:"term_name"}],["term_version","char*"],["term_version_len","u64",{lengthOf:"term_version"}],["term_from_xtversion","bool_u8"]]),$Q=tq([["width","u8"],["char","u32"]]),Og=tq([["starts",["u32"]],["startsLen","u32",{lengthOf:"starts"}],["widths",["u32"]],["widthsLen","u32",{lengthOf:"widths"}],["sources",["u32"]],["sourcesLen","u32",{lengthOf:"sources"}],["wraps",["u32"]],["wrapsLen","u32",{lengthOf:"wraps"}],["maxWidth","u32"]]),XQ=tq([["lineCount","u32"],["maxWidth","u32"]]),HQ=tq([["x","u32"],["y","u32"],["visible","bool_u8"],["style","u8"],["blinking","bool_u8"],["r","f32"],["g","f32"],["b","f32"],["a","f32"]]),b$=await import(`@opentui/core-${process.platform}-${process.arch}/index.ts`),BE=b$.default;if(vQ(BE))BE=BE.replace("../","");if(!R$(BE))throw new Error(`opentui is not supported on the current platform: ${process.platform}-${process.arch}`);WA({name:"OTUI_DEBUG_FFI",description:"Enable debug logging for the FFI bindings.",type:"boolean",default:!1});WA({name:"OTUI_TRACE_FFI",description:"Enable tracing for the FFI bindings.",type:"boolean",default:!1});WA({name:"OPENTUI_FORCE_WCWIDTH",description:"Use wcwidth for character width calculations",type:"boolean",default:!1});WA({name:"OPENTUI_FORCE_UNICODE",description:"Force Mode 2026 Unicode support in terminal capabilities",type:"boolean",default:!1});WA({name:"OPENTUI_NO_GRAPHICS",description:"Disable Kitty graphics protocol detection",type:"boolean",default:!1});WA({name:"OPENTUI_FORCE_NOZWJ",description:"Use no_zwj width method (Unicode without ZWJ joining)",type:"boolean",default:!1});var cg=null,B6=null,LQ=!1;function v$(A){let g=P$(A||BE,{setLogCallback:{args:["ptr"],returns:"void"},setEventCallback:{args:["ptr"],returns:"void"},createRenderer:{args:["u32","u32","bool"],returns:"ptr"},destroyRenderer:{args:["ptr"],returns:"void"},setUseThread:{args:["ptr","bool"],returns:"void"},setBackgroundColor:{args:["ptr","ptr"],returns:"void"},setRenderOffset:{args:["ptr","u32"],returns:"void"},updateStats:{args:["ptr","f64","u32","f64"],returns:"void"},updateMemoryStats:{args:["ptr","u32","u32","u32"],returns:"void"},render:{args:["ptr","bool"],returns:"void"},getNextBuffer:{args:["ptr"],returns:"ptr"},getCurrentBuffer:{args:["ptr"],returns:"ptr"},queryPixelResolution:{args:["ptr"],returns:"void"},createOptimizedBuffer:{args:["u32","u32","bool","u8","ptr","usize"],returns:"ptr"},destroyOptimizedBuffer:{args:["ptr"],returns:"void"},drawFrameBuffer:{args:["ptr","i32","i32","ptr","u32","u32","u32","u32"],returns:"void"},getBufferWidth:{args:["ptr"],returns:"u32"},getBufferHeight:{args:["ptr"],returns:"u32"},bufferClear:{args:["ptr","ptr"],returns:"void"},bufferGetCharPtr:{args:["ptr"],returns:"ptr"},bufferGetFgPtr:{args:["ptr"],returns:"ptr"},bufferGetBgPtr:{args:["ptr"],returns:"ptr"},bufferGetAttributesPtr:{args:["ptr"],returns:"ptr"},bufferGetRespectAlpha:{args:["ptr"],returns:"bool"},bufferSetRespectAlpha:{args:["ptr","bool"],returns:"void"},bufferGetId:{args:["ptr","ptr","usize"],returns:"usize"},bufferGetRealCharSize:{args:["ptr"],returns:"u32"},bufferWriteResolvedChars:{args:["ptr","ptr","usize","bool"],returns:"u32"},bufferDrawText:{args:["ptr","ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferSetCellWithAlphaBlending:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferSetCell:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"},bufferFillRect:{args:["ptr","u32","u32","u32","u32","ptr"],returns:"void"},bufferResize:{args:["ptr","u32","u32"],returns:"void"},linkAlloc:{args:["ptr","u32"],returns:"u32"},linkGetUrl:{args:["u32","ptr","u32"],returns:"u32"},attributesWithLink:{args:["u32","u32"],returns:"u32"},attributesGetLinkId:{args:["u32"],returns:"u32"},resizeRenderer:{args:["ptr","u32","u32"],returns:"void"},setCursorPosition:{args:["ptr","i32","i32","bool"],returns:"void"},setCursorStyle:{args:["ptr","ptr","u32","bool"],returns:"void"},setCursorColor:{args:["ptr","ptr"],returns:"void"},getCursorState:{args:["ptr","ptr"],returns:"void"},setDebugOverlay:{args:["ptr","bool","u8"],returns:"void"},clearTerminal:{args:["ptr"],returns:"void"},setTerminalTitle:{args:["ptr","ptr","usize"],returns:"void"},bufferDrawSuperSampleBuffer:{args:["ptr","u32","u32","ptr","usize","u8","u32"],returns:"void"},bufferDrawPackedBuffer:{args:["ptr","ptr","usize","u32","u32","u32","u32"],returns:"void"},bufferDrawGrayscaleBuffer:{args:["ptr","i32","i32","ptr","u32","u32","ptr","ptr"],returns:"void"},bufferDrawGrayscaleBufferSupersampled:{args:["ptr","i32","i32","ptr","u32","u32","ptr","ptr"],returns:"void"},bufferDrawBox:{args:["ptr","i32","i32","u32","u32","ptr","u32","ptr","ptr","ptr","u32"],returns:"void"},bufferPushScissorRect:{args:["ptr","i32","i32","u32","u32"],returns:"void"},bufferPopScissorRect:{args:["ptr"],returns:"void"},bufferClearScissorRects:{args:["ptr"],returns:"void"},bufferPushOpacity:{args:["ptr","f32"],returns:"void"},bufferPopOpacity:{args:["ptr"],returns:"void"},bufferGetCurrentOpacity:{args:["ptr"],returns:"f32"},bufferClearOpacity:{args:["ptr"],returns:"void"},addToHitGrid:{args:["ptr","i32","i32","u32","u32","u32"],returns:"void"},clearCurrentHitGrid:{args:["ptr"],returns:"void"},hitGridPushScissorRect:{args:["ptr","i32","i32","u32","u32"],returns:"void"},hitGridPopScissorRect:{args:["ptr"],returns:"void"},hitGridClearScissorRects:{args:["ptr"],returns:"void"},addToCurrentHitGridClipped:{args:["ptr","i32","i32","u32","u32","u32"],returns:"void"},checkHit:{args:["ptr","u32","u32"],returns:"u32"},getHitGridDirty:{args:["ptr"],returns:"bool"},dumpHitGrid:{args:["ptr"],returns:"void"},dumpBuffers:{args:["ptr","i64"],returns:"void"},dumpStdoutBuffer:{args:["ptr","i64"],returns:"void"},enableMouse:{args:["ptr","bool"],returns:"void"},disableMouse:{args:["ptr"],returns:"void"},enableKittyKeyboard:{args:["ptr","u8"],returns:"void"},disableKittyKeyboard:{args:["ptr"],returns:"void"},setKittyKeyboardFlags:{args:["ptr","u8"],returns:"void"},getKittyKeyboardFlags:{args:["ptr"],returns:"u8"},setupTerminal:{args:["ptr","bool"],returns:"void"},suspendRenderer:{args:["ptr"],returns:"void"},resumeRenderer:{args:["ptr"],returns:"void"},writeOut:{args:["ptr","ptr","u64"],returns:"void"},createTextBuffer:{args:["u8"],returns:"ptr"},destroyTextBuffer:{args:["ptr"],returns:"void"},textBufferGetLength:{args:["ptr"],returns:"u32"},textBufferGetByteSize:{args:["ptr"],returns:"u32"},textBufferReset:{args:["ptr"],returns:"void"},textBufferClear:{args:["ptr"],returns:"void"},textBufferSetDefaultFg:{args:["ptr","ptr"],returns:"void"},textBufferSetDefaultBg:{args:["ptr","ptr"],returns:"void"},textBufferSetDefaultAttributes:{args:["ptr","ptr"],returns:"void"},textBufferResetDefaults:{args:["ptr"],returns:"void"},textBufferGetTabWidth:{args:["ptr"],returns:"u8"},textBufferSetTabWidth:{args:["ptr","u8"],returns:"void"},textBufferRegisterMemBuffer:{args:["ptr","ptr","usize","bool"],returns:"u16"},textBufferReplaceMemBuffer:{args:["ptr","u8","ptr","usize","bool"],returns:"bool"},textBufferClearMemRegistry:{args:["ptr"],returns:"void"},textBufferSetTextFromMem:{args:["ptr","u8"],returns:"void"},textBufferAppend:{args:["ptr","ptr","usize"],returns:"void"},textBufferAppendFromMemId:{args:["ptr","u8"],returns:"void"},textBufferLoadFile:{args:["ptr","ptr","usize"],returns:"bool"},textBufferSetStyledText:{args:["ptr","ptr","usize"],returns:"void"},textBufferGetLineCount:{args:["ptr"],returns:"u32"},textBufferGetPlainText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferAddHighlightByCharRange:{args:["ptr","ptr"],returns:"void"},textBufferAddHighlight:{args:["ptr","u32","ptr"],returns:"void"},textBufferRemoveHighlightsByRef:{args:["ptr","u16"],returns:"void"},textBufferClearLineHighlights:{args:["ptr","u32"],returns:"void"},textBufferClearAllHighlights:{args:["ptr"],returns:"void"},textBufferSetSyntaxStyle:{args:["ptr","ptr"],returns:"void"},textBufferGetLineHighlightsPtr:{args:["ptr","u32","ptr"],returns:"ptr"},textBufferFreeLineHighlights:{args:["ptr","usize"],returns:"void"},textBufferGetHighlightCount:{args:["ptr"],returns:"u32"},textBufferGetTextRange:{args:["ptr","u32","u32","ptr","usize"],returns:"usize"},textBufferGetTextRangeByCoords:{args:["ptr","u32","u32","u32","u32","ptr","usize"],returns:"usize"},createTextBufferView:{args:["ptr"],returns:"ptr"},destroyTextBufferView:{args:["ptr"],returns:"void"},textBufferViewSetSelection:{args:["ptr","u32","u32","ptr","ptr"],returns:"void"},textBufferViewResetSelection:{args:["ptr"],returns:"void"},textBufferViewGetSelectionInfo:{args:["ptr"],returns:"u64"},textBufferViewSetLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr"],returns:"bool"},textBufferViewUpdateSelection:{args:["ptr","u32","ptr","ptr"],returns:"void"},textBufferViewUpdateLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr"],returns:"bool"},textBufferViewResetLocalSelection:{args:["ptr"],returns:"void"},textBufferViewSetWrapWidth:{args:["ptr","u32"],returns:"void"},textBufferViewSetWrapMode:{args:["ptr","u8"],returns:"void"},textBufferViewSetViewportSize:{args:["ptr","u32","u32"],returns:"void"},textBufferViewSetViewport:{args:["ptr","u32","u32","u32","u32"],returns:"void"},textBufferViewGetVirtualLineCount:{args:["ptr"],returns:"u32"},textBufferViewGetLineInfoDirect:{args:["ptr","ptr"],returns:"void"},textBufferViewGetLogicalLineInfoDirect:{args:["ptr","ptr"],returns:"void"},textBufferViewGetSelectedText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferViewGetPlainText:{args:["ptr","ptr","usize"],returns:"usize"},textBufferViewSetTabIndicator:{args:["ptr","u32"],returns:"void"},textBufferViewSetTabIndicatorColor:{args:["ptr","ptr"],returns:"void"},textBufferViewSetTruncate:{args:["ptr","bool"],returns:"void"},textBufferViewMeasureForDimensions:{args:["ptr","u32","u32","ptr"],returns:"bool"},bufferDrawTextBufferView:{args:["ptr","ptr","i32","i32"],returns:"void"},bufferDrawEditorView:{args:["ptr","ptr","i32","i32"],returns:"void"},createEditorView:{args:["ptr","u32","u32"],returns:"ptr"},destroyEditorView:{args:["ptr"],returns:"void"},editorViewSetViewportSize:{args:["ptr","u32","u32"],returns:"void"},editorViewSetViewport:{args:["ptr","u32","u32","u32","u32","bool"],returns:"void"},editorViewGetViewport:{args:["ptr","ptr","ptr","ptr","ptr"],returns:"void"},editorViewSetScrollMargin:{args:["ptr","f32"],returns:"void"},editorViewSetWrapMode:{args:["ptr","u8"],returns:"void"},editorViewGetVirtualLineCount:{args:["ptr"],returns:"u32"},editorViewGetTotalVirtualLineCount:{args:["ptr"],returns:"u32"},editorViewGetTextBufferView:{args:["ptr"],returns:"ptr"},editorViewGetLineInfoDirect:{args:["ptr","ptr"],returns:"void"},editorViewGetLogicalLineInfoDirect:{args:["ptr","ptr"],returns:"void"},createEditBuffer:{args:["u8"],returns:"ptr"},destroyEditBuffer:{args:["ptr"],returns:"void"},editBufferSetText:{args:["ptr","ptr","usize"],returns:"void"},editBufferSetTextFromMem:{args:["ptr","u8"],returns:"void"},editBufferReplaceText:{args:["ptr","ptr","usize"],returns:"void"},editBufferReplaceTextFromMem:{args:["ptr","u8"],returns:"void"},editBufferGetText:{args:["ptr","ptr","usize"],returns:"usize"},editBufferInsertChar:{args:["ptr","ptr","usize"],returns:"void"},editBufferInsertText:{args:["ptr","ptr","usize"],returns:"void"},editBufferDeleteChar:{args:["ptr"],returns:"void"},editBufferDeleteCharBackward:{args:["ptr"],returns:"void"},editBufferDeleteRange:{args:["ptr","u32","u32","u32","u32"],returns:"void"},editBufferNewLine:{args:["ptr"],returns:"void"},editBufferDeleteLine:{args:["ptr"],returns:"void"},editBufferMoveCursorLeft:{args:["ptr"],returns:"void"},editBufferMoveCursorRight:{args:["ptr"],returns:"void"},editBufferMoveCursorUp:{args:["ptr"],returns:"void"},editBufferMoveCursorDown:{args:["ptr"],returns:"void"},editBufferGotoLine:{args:["ptr","u32"],returns:"void"},editBufferSetCursor:{args:["ptr","u32","u32"],returns:"void"},editBufferSetCursorToLineCol:{args:["ptr","u32","u32"],returns:"void"},editBufferSetCursorByOffset:{args:["ptr","u32"],returns:"void"},editBufferGetCursorPosition:{args:["ptr","ptr"],returns:"void"},editBufferGetId:{args:["ptr"],returns:"u16"},editBufferGetTextBuffer:{args:["ptr"],returns:"ptr"},editBufferDebugLogRope:{args:["ptr"],returns:"void"},editBufferUndo:{args:["ptr","ptr","usize"],returns:"usize"},editBufferRedo:{args:["ptr","ptr","usize"],returns:"usize"},editBufferCanUndo:{args:["ptr"],returns:"bool"},editBufferCanRedo:{args:["ptr"],returns:"bool"},editBufferClearHistory:{args:["ptr"],returns:"void"},editBufferClear:{args:["ptr"],returns:"void"},editBufferGetNextWordBoundary:{args:["ptr","ptr"],returns:"void"},editBufferGetPrevWordBoundary:{args:["ptr","ptr"],returns:"void"},editBufferGetEOL:{args:["ptr","ptr"],returns:"void"},editBufferOffsetToPosition:{args:["ptr","u32","ptr"],returns:"bool"},editBufferPositionToOffset:{args:["ptr","u32","u32"],returns:"u32"},editBufferGetLineStartOffset:{args:["ptr","u32"],returns:"u32"},editBufferGetTextRange:{args:["ptr","u32","u32","ptr","usize"],returns:"usize"},editBufferGetTextRangeByCoords:{args:["ptr","u32","u32","u32","u32","ptr","usize"],returns:"usize"},editorViewSetSelection:{args:["ptr","u32","u32","ptr","ptr"],returns:"void"},editorViewResetSelection:{args:["ptr"],returns:"void"},editorViewGetSelection:{args:["ptr"],returns:"u64"},editorViewSetLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr","bool","bool"],returns:"bool"},editorViewUpdateSelection:{args:["ptr","u32","ptr","ptr"],returns:"void"},editorViewUpdateLocalSelection:{args:["ptr","i32","i32","i32","i32","ptr","ptr","bool","bool"],returns:"bool"},editorViewResetLocalSelection:{args:["ptr"],returns:"void"},editorViewGetSelectedTextBytes:{args:["ptr","ptr","usize"],returns:"usize"},editorViewGetCursor:{args:["ptr","ptr","ptr"],returns:"void"},editorViewGetText:{args:["ptr","ptr","usize"],returns:"usize"},editorViewGetVisualCursor:{args:["ptr","ptr"],returns:"void"},editorViewMoveUpVisual:{args:["ptr"],returns:"void"},editorViewMoveDownVisual:{args:["ptr"],returns:"void"},editorViewDeleteSelectedText:{args:["ptr"],returns:"void"},editorViewSetCursorByOffset:{args:["ptr","u32"],returns:"void"},editorViewGetNextWordBoundary:{args:["ptr","ptr"],returns:"void"},editorViewGetPrevWordBoundary:{args:["ptr","ptr"],returns:"void"},editorViewGetEOL:{args:["ptr","ptr"],returns:"void"},editorViewGetVisualSOL:{args:["ptr","ptr"],returns:"void"},editorViewGetVisualEOL:{args:["ptr","ptr"],returns:"void"},editorViewSetPlaceholderStyledText:{args:["ptr","ptr","usize"],returns:"void"},editorViewSetTabIndicator:{args:["ptr","u32"],returns:"void"},editorViewSetTabIndicatorColor:{args:["ptr","ptr"],returns:"void"},getArenaAllocatedBytes:{args:[],returns:"usize"},createSyntaxStyle:{args:[],returns:"ptr"},destroySyntaxStyle:{args:["ptr"],returns:"void"},syntaxStyleRegister:{args:["ptr","ptr","usize","ptr","ptr","u8"],returns:"u32"},syntaxStyleResolveByName:{args:["ptr","ptr","usize"],returns:"u32"},syntaxStyleGetStyleCount:{args:["ptr"],returns:"usize"},getTerminalCapabilities:{args:["ptr","ptr"],returns:"void"},processCapabilityResponse:{args:["ptr","ptr","usize"],returns:"void"},encodeUnicode:{args:["ptr","usize","ptr","ptr","u8"],returns:"bool"},freeUnicode:{args:["ptr","usize"],returns:"void"},bufferDrawChar:{args:["ptr","u32","u32","u32","ptr","ptr","u32"],returns:"void"}});if(XA.OTUI_DEBUG_FFI||XA.OTUI_TRACE_FFI)return{symbols:m$(g.symbols)};return g}function m$(A){if(!cg)cg={};if(XA.OTUI_DEBUG_FFI&&!B6){let K=`ffi_otui_debug_${new Date().toISOString().replace(/[:.]/g,"-").replace(/T/,"_").split("Z")[0]}.log`;B6=Bun.file(K).writer()}let q={},g=!1;if(Object.entries(A).forEach(([E,F])=>{q[E]=F}),XA.OTUI_DEBUG_FFI&&B6){let E=B6,F=(K)=>{let Z=new TextEncoder().encode(K+`
|
|
12
|
+
`);E.write(Z),E.flush()};Object.entries(A).forEach(([K,Z])=>{if(typeof Z==="function")q[K]=(...j)=>{F(`${K}(${j.map((G)=>String(G)).join(", ")})`);let U=Z(...j);return F(`${K} returned: ${String(U)}`),U}})}if(XA.OTUI_TRACE_FFI)g=!0,Object.entries(A).forEach(([E,F])=>{if(typeof F==="function"){if(!cg[E])cg[E]=[];let K=q[E];q[E]=(...Z)=>{let j=performance.now(),U=K(...Z),G=performance.now();return cg[E].push(G-j),U}}});if((XA.OTUI_DEBUG_FFI||XA.OTUI_TRACE_FFI)&&!LQ)LQ=!0,process.on("exit",()=>{try{if(B6)B6.end()}catch(E){}if(cg){let E=[];for(let[Z,j]of Object.entries(cg)){if(!Array.isArray(j)||j.length===0)continue;let U=[...j].sort((C,i)=>C-i),G=U.length,Y=U.reduce((C,i)=>C+i,0),M=Y/G,O=U[0],$=U[G-1],_=Math.floor(G/2),x=Math.floor(G*0.9),N=Math.floor(G*0.99),L=U[_],P=U[Math.min(x,G-1)],k=U[Math.min(N,G-1)];E.push({name:Z,count:G,total:Y,average:M,min:O,max:$,median:L,p90:P,p99:k})}E.sort((Z,j)=>j.total-Z.total);let F=[];if(F.push(`
|
|
13
|
+
--- OpenTUI FFI Call Performance ---`),F.push("Sorted by total time spent (descending)"),F.push("-------------------------------------------------------------------------------------------------------------------------"),E.length===0)F.push("No trace data collected or all symbols had zero calls.");else{let x=Math.max(6,...E.map((z)=>z.name.length)),N=Math.max(5,...E.map((z)=>String(z.count).length)),L=Math.max(10,...E.map((z)=>z.total.toFixed(2).length)),P=Math.max(8,...E.map((z)=>z.average.toFixed(2).length)),k=Math.max(8,...E.map((z)=>z.min.toFixed(2).length)),C=Math.max(8,...E.map((z)=>z.max.toFixed(2).length)),i=Math.max(8,...E.map((z)=>z.median.toFixed(2).length)),p=Math.max(8,...E.map((z)=>z.p90.toFixed(2).length)),a=Math.max(8,...E.map((z)=>z.p99.toFixed(2).length));F.push(`${"Symbol".padEnd(x)} | ${"Calls".padStart(N)} | ${"Total (ms)".padStart(L)} | ${"Avg (ms)".padStart(P)} | ${"Min (ms)".padStart(k)} | ${"Max (ms)".padStart(C)} | ${"Med (ms)".padStart(i)} | ${"P90 (ms)".padStart(p)} | ${"P99 (ms)".padStart(a)}`),F.push(`${"-".repeat(x)}-+-${"-".repeat(N)}-+-${"-".repeat(L)}-+-${"-".repeat(P)}-+-${"-".repeat(k)}-+-${"-".repeat(C)}-+-${"-".repeat(i)}-+-${"-".repeat(p)}-+-${"-".repeat(a)}`),E.forEach((z)=>{F.push(`${z.name.padEnd(x)} | ${String(z.count).padStart(N)} | ${z.total.toFixed(2).padStart(L)} | ${z.average.toFixed(2).padStart(P)} | ${z.min.toFixed(2).padStart(k)} | ${z.max.toFixed(2).padStart(C)} | ${z.median.toFixed(2).padStart(i)} | ${z.p90.toFixed(2).padStart(p)} | ${z.p99.toFixed(2).padStart(a)}`)})}F.push("-------------------------------------------------------------------------------------------------------------------------");let K=F.join(`
|
|
14
|
+
`);console.log(K);try{let U=`ffi_otui_trace_${new Date().toISOString().replace(/[:.]/g,"-").replace(/T/,"_").split("Z")[0]}.log`;Bun.write(U,K)}catch(Z){console.error("Failed to write FFI trace file:",Z)}}});return q}var uQ;((A)=>{A[A.Error=0]="Error",A[A.Warn=1]="Warn",A[A.Info=2]="Info",A[A.Debug=3]="Debug"})(uQ||={});class TU{opentui;encoder=new TextEncoder;decoder=new TextDecoder;logCallbackWrapper;eventCallbackWrapper;_nativeEvents=new S$;_anyEventHandlers=[];constructor(A){this.opentui=v$(A),this.setupLogging(),this.setupEventBus()}setupLogging(){if(this.logCallbackWrapper)return;let A=new FQ((q,g,E)=>{try{let F=typeof E==="bigint"?Number(E):E;if(F===0||!g)return;let K=aE(g,0,F),Z=new Uint8Array(K),j=this.decoder.decode(Z);switch(q){case 0:console.error(j);break;case 1:console.warn(j);break;case 2:console.info(j);break;case 3:console.debug(j);break;default:console.log(j)}}catch(F){console.error("Error in Zig log callback:",F)}},{args:["u8","ptr","usize"],returns:"void"});if(this.logCallbackWrapper=A,!A.ptr)throw new Error("Failed to create log callback");this.setLogCallback(A.ptr)}setLogCallback(A){this.opentui.symbols.setLogCallback(A)}setupEventBus(){if(this.eventCallbackWrapper)return;let A=new FQ((q,g,E,F)=>{try{let K=typeof g==="bigint"?Number(g):g,Z=typeof F==="bigint"?Number(F):F;if(K===0||!q)return;let j=aE(q,0,K),U=new Uint8Array(j),G=this.decoder.decode(U),Y;if(Z>0&&E)Y=aE(E,0,Z).slice();else Y=new ArrayBuffer(0);queueMicrotask(()=>{this._nativeEvents.emit(G,Y);for(let M of this._anyEventHandlers)M(G,Y)})}catch(K){console.error("Error in native event callback:",K)}},{args:["ptr","usize","ptr","usize"],returns:"void"});if(this.eventCallbackWrapper=A,!A.ptr)throw new Error("Failed to create event callback");this.setEventCallback(A.ptr)}setEventCallback(A){this.opentui.symbols.setEventCallback(A)}createRenderer(A,q,g={testing:!1}){return this.opentui.symbols.createRenderer(A,q,g.testing)}destroyRenderer(A){this.opentui.symbols.destroyRenderer(A)}setUseThread(A,q){this.opentui.symbols.setUseThread(A,q)}setBackgroundColor(A,q){this.opentui.symbols.setBackgroundColor(A,q.buffer)}setRenderOffset(A,q){this.opentui.symbols.setRenderOffset(A,q)}updateStats(A,q,g,E){this.opentui.symbols.updateStats(A,q,g,E)}updateMemoryStats(A,q,g,E){this.opentui.symbols.updateMemoryStats(A,q,g,E)}getNextBuffer(A){let q=this.opentui.symbols.getNextBuffer(A);if(!q)throw new Error("Failed to get next buffer");let g=this.opentui.symbols.getBufferWidth(q),E=this.opentui.symbols.getBufferHeight(q);return new $g(this,q,g,E,{id:"next buffer",widthMethod:"unicode"})}getCurrentBuffer(A){let q=this.opentui.symbols.getCurrentBuffer(A);if(!q)throw new Error("Failed to get current buffer");let g=this.opentui.symbols.getBufferWidth(q),E=this.opentui.symbols.getBufferHeight(q);return new $g(this,q,g,E,{id:"current buffer",widthMethod:"unicode"})}bufferGetCharPtr(A){let q=this.opentui.symbols.bufferGetCharPtr(A);if(!q)throw new Error("Failed to get char pointer");return q}bufferGetFgPtr(A){let q=this.opentui.symbols.bufferGetFgPtr(A);if(!q)throw new Error("Failed to get fg pointer");return q}bufferGetBgPtr(A){let q=this.opentui.symbols.bufferGetBgPtr(A);if(!q)throw new Error("Failed to get bg pointer");return q}bufferGetAttributesPtr(A){let q=this.opentui.symbols.bufferGetAttributesPtr(A);if(!q)throw new Error("Failed to get attributes pointer");return q}bufferGetRespectAlpha(A){return this.opentui.symbols.bufferGetRespectAlpha(A)}bufferSetRespectAlpha(A,q){this.opentui.symbols.bufferSetRespectAlpha(A,q)}bufferGetId(A){let g=new Uint8Array(256),E=this.opentui.symbols.bufferGetId(A,g,256),F=typeof E==="bigint"?Number(E):E;return this.decoder.decode(g.slice(0,F))}bufferGetRealCharSize(A){return this.opentui.symbols.bufferGetRealCharSize(A)}bufferWriteResolvedChars(A,q,g){let E=this.opentui.symbols.bufferWriteResolvedChars(A,q,q.length,g);return typeof E==="bigint"?Number(E):E}getBufferWidth(A){return this.opentui.symbols.getBufferWidth(A)}getBufferHeight(A){return this.opentui.symbols.getBufferHeight(A)}bufferClear(A,q){this.opentui.symbols.bufferClear(A,q.buffer)}bufferDrawText(A,q,g,E,F,K,Z){let j=this.encoder.encode(q),U=j.byteLength,G=K?K.buffer:null,Y=F.buffer;this.opentui.symbols.bufferDrawText(A,j,U,g,E,Y,G,Z??0)}bufferSetCellWithAlphaBlending(A,q,g,E,F,K,Z){let j=E.codePointAt(0)??" ".codePointAt(0),U=K.buffer,G=F.buffer;this.opentui.symbols.bufferSetCellWithAlphaBlending(A,q,g,j,G,U,Z??0)}bufferSetCell(A,q,g,E,F,K,Z){let j=E.codePointAt(0)??" ".codePointAt(0),U=K.buffer,G=F.buffer;this.opentui.symbols.bufferSetCell(A,q,g,j,G,U,Z??0)}bufferFillRect(A,q,g,E,F,K){let Z=K.buffer;this.opentui.symbols.bufferFillRect(A,q,g,E,F,Z)}bufferDrawSuperSampleBuffer(A,q,g,E,F,K,Z){let j=K==="bgra8unorm"?0:1;this.opentui.symbols.bufferDrawSuperSampleBuffer(A,q,g,E,F,j,Z)}bufferDrawPackedBuffer(A,q,g,E,F,K,Z){this.opentui.symbols.bufferDrawPackedBuffer(A,q,g,E,F,K,Z)}bufferDrawGrayscaleBuffer(A,q,g,E,F,K,Z,j){this.opentui.symbols.bufferDrawGrayscaleBuffer(A,q,g,E,F,K,Z?.buffer??null,j?.buffer??null)}bufferDrawGrayscaleBufferSupersampled(A,q,g,E,F,K,Z,j){this.opentui.symbols.bufferDrawGrayscaleBufferSupersampled(A,q,g,E,F,K,Z?.buffer??null,j?.buffer??null)}bufferDrawBox(A,q,g,E,F,K,Z,j,U,G){let Y=G?this.encoder.encode(G):null,M=G?Y.length:0,O=G?Y:null;this.opentui.symbols.bufferDrawBox(A,q,g,E,F,K,Z,j.buffer,U.buffer,O,M)}bufferResize(A,q,g){this.opentui.symbols.bufferResize(A,q,g)}linkAlloc(A){let q=this.encoder.encode(A);return this.opentui.symbols.linkAlloc(q,q.length)}linkGetUrl(A,q=512){let g=new Uint8Array(q),E=this.opentui.symbols.linkGetUrl(A,g,q);return this.decoder.decode(g.slice(0,E))}attributesWithLink(A,q){return this.opentui.symbols.attributesWithLink(A,q)}attributesGetLinkId(A){return this.opentui.symbols.attributesGetLinkId(A)}resizeRenderer(A,q,g){this.opentui.symbols.resizeRenderer(A,q,g)}setCursorPosition(A,q,g,E){this.opentui.symbols.setCursorPosition(A,q,g,E)}setCursorStyle(A,q,g){let E=this.encoder.encode(q);this.opentui.symbols.setCursorStyle(A,E,q.length,g)}setCursorColor(A,q){this.opentui.symbols.setCursorColor(A,q.buffer)}getCursorState(A){let q=new ArrayBuffer(HQ.size);this.opentui.symbols.getCursorState(A,qA(q));let g=HQ.unpack(q),E={0:"block",1:"line",2:"underline"};return{x:g.x,y:g.y,visible:g.visible,style:E[g.style]||"block",blinking:g.blinking,color:OA.fromValues(g.r,g.g,g.b,g.a)}}render(A,q){this.opentui.symbols.render(A,q)}createOptimizedBuffer(A,q,g,E=!1,F){if(Number.isNaN(A)||Number.isNaN(q))console.error(new Error(`Invalid dimensions for OptimizedBuffer: ${A}x${q}`).stack);let K=g==="wcwidth"?0:1,Z=F||"unnamed buffer",j=this.encoder.encode(Z),U=this.opentui.symbols.createOptimizedBuffer(A,q,E,K,j,j.length);if(!U)throw new Error(`Failed to create optimized buffer: ${A}x${q}`);return new $g(this,U,A,q,{respectAlpha:E,id:F,widthMethod:g})}destroyOptimizedBuffer(A){this.opentui.symbols.destroyOptimizedBuffer(A)}drawFrameBuffer(A,q,g,E,F,K,Z,j){let U=F??0,G=K??0,Y=Z??0,M=j??0;this.opentui.symbols.drawFrameBuffer(A,q,g,E,U,G,Y,M)}setDebugOverlay(A,q,g){this.opentui.symbols.setDebugOverlay(A,q,g)}clearTerminal(A){this.opentui.symbols.clearTerminal(A)}setTerminalTitle(A,q){let g=this.encoder.encode(q);this.opentui.symbols.setTerminalTitle(A,g,g.length)}addToHitGrid(A,q,g,E,F,K){this.opentui.symbols.addToHitGrid(A,q,g,E,F,K)}clearCurrentHitGrid(A){this.opentui.symbols.clearCurrentHitGrid(A)}hitGridPushScissorRect(A,q,g,E,F){this.opentui.symbols.hitGridPushScissorRect(A,q,g,E,F)}hitGridPopScissorRect(A){this.opentui.symbols.hitGridPopScissorRect(A)}hitGridClearScissorRects(A){this.opentui.symbols.hitGridClearScissorRects(A)}addToCurrentHitGridClipped(A,q,g,E,F,K){this.opentui.symbols.addToCurrentHitGridClipped(A,q,g,E,F,K)}checkHit(A,q,g){return this.opentui.symbols.checkHit(A,q,g)}getHitGridDirty(A){return this.opentui.symbols.getHitGridDirty(A)}dumpHitGrid(A){this.opentui.symbols.dumpHitGrid(A)}dumpBuffers(A,q){let g=q??Date.now();this.opentui.symbols.dumpBuffers(A,g)}dumpStdoutBuffer(A,q){let g=q??Date.now();this.opentui.symbols.dumpStdoutBuffer(A,g)}enableMouse(A,q){this.opentui.symbols.enableMouse(A,q)}disableMouse(A){this.opentui.symbols.disableMouse(A)}enableKittyKeyboard(A,q){this.opentui.symbols.enableKittyKeyboard(A,q)}disableKittyKeyboard(A){this.opentui.symbols.disableKittyKeyboard(A)}setKittyKeyboardFlags(A,q){this.opentui.symbols.setKittyKeyboardFlags(A,q)}getKittyKeyboardFlags(A){return this.opentui.symbols.getKittyKeyboardFlags(A)}setupTerminal(A,q){this.opentui.symbols.setupTerminal(A,q)}suspendRenderer(A){this.opentui.symbols.suspendRenderer(A)}resumeRenderer(A){this.opentui.symbols.resumeRenderer(A)}queryPixelResolution(A){this.opentui.symbols.queryPixelResolution(A)}writeOut(A,q){let g=typeof q==="string"?new TextEncoder().encode(q):q;if(g.length===0)return;this.opentui.symbols.writeOut(A,qA(g),g.length)}createTextBuffer(A){let q=A==="wcwidth"?0:1,g=this.opentui.symbols.createTextBuffer(q);if(!g)throw new Error("Failed to create TextBuffer");return new YZ(this,g)}destroyTextBuffer(A){this.opentui.symbols.destroyTextBuffer(A)}textBufferGetLength(A){return this.opentui.symbols.textBufferGetLength(A)}textBufferGetByteSize(A){return this.opentui.symbols.textBufferGetByteSize(A)}textBufferReset(A){this.opentui.symbols.textBufferReset(A)}textBufferClear(A){this.opentui.symbols.textBufferClear(A)}textBufferSetDefaultFg(A,q){let g=q?q.buffer:null;this.opentui.symbols.textBufferSetDefaultFg(A,g)}textBufferSetDefaultBg(A,q){let g=q?q.buffer:null;this.opentui.symbols.textBufferSetDefaultBg(A,g)}textBufferSetDefaultAttributes(A,q){let g=q===null?null:new Uint8Array([q]);this.opentui.symbols.textBufferSetDefaultAttributes(A,g)}textBufferResetDefaults(A){this.opentui.symbols.textBufferResetDefaults(A)}textBufferGetTabWidth(A){return this.opentui.symbols.textBufferGetTabWidth(A)}textBufferSetTabWidth(A,q){this.opentui.symbols.textBufferSetTabWidth(A,q)}textBufferRegisterMemBuffer(A,q,g=!1){let E=this.opentui.symbols.textBufferRegisterMemBuffer(A,q,q.length,g);if(E===65535)throw new Error("Failed to register memory buffer");return E}textBufferReplaceMemBuffer(A,q,g,E=!1){return this.opentui.symbols.textBufferReplaceMemBuffer(A,q,g,g.length,E)}textBufferClearMemRegistry(A){this.opentui.symbols.textBufferClearMemRegistry(A)}textBufferSetTextFromMem(A,q){this.opentui.symbols.textBufferSetTextFromMem(A,q)}textBufferAppend(A,q){this.opentui.symbols.textBufferAppend(A,q,q.length)}textBufferAppendFromMemId(A,q){this.opentui.symbols.textBufferAppendFromMemId(A,q)}textBufferLoadFile(A,q){let g=this.encoder.encode(q);return this.opentui.symbols.textBufferLoadFile(A,g,g.length)}textBufferSetStyledText(A,q){let g=q.filter((K)=>K.text.length>0);if(g.length===0){this.textBufferClear(A);return}let E=g.map((K)=>{if(K.link){let Z=this.linkAlloc(K.link.url);return{...K,attributes:BQ(K.attributes??0,Z)}}return K}),F=MQ.packList(E);this.opentui.symbols.textBufferSetStyledText(A,qA(F),E.length)}textBufferGetLineCount(A){return this.opentui.symbols.textBufferGetLineCount(A)}textBufferGetPlainText(A,q,g){let E=this.opentui.symbols.textBufferGetPlainText(A,q,g);return typeof E==="bigint"?Number(E):E}getPlainTextBytes(A,q){let g=new Uint8Array(q),E=this.textBufferGetPlainText(A,qA(g),q);if(E===0)return null;return g.slice(0,E)}textBufferGetTextRange(A,q,g,E){let F=new Uint8Array(E),K=this.opentui.symbols.textBufferGetTextRange(A,q,g,qA(F),E),Z=typeof K==="bigint"?Number(K):K;if(Z===0)return null;return F.slice(0,Z)}textBufferGetTextRangeByCoords(A,q,g,E,F,K){let Z=new Uint8Array(K),j=this.opentui.symbols.textBufferGetTextRangeByCoords(A,q,g,E,F,qA(Z),K),U=typeof j==="bigint"?Number(j):j;if(U===0)return null;return Z.slice(0,U)}createTextBufferView(A){let q=this.opentui.symbols.createTextBufferView(A);if(!q)throw new Error("Failed to create TextBufferView");return q}destroyTextBufferView(A){this.opentui.symbols.destroyTextBufferView(A)}textBufferViewSetSelection(A,q,g,E,F){let K=E?E.buffer:null,Z=F?F.buffer:null;this.opentui.symbols.textBufferViewSetSelection(A,q,g,K,Z)}textBufferViewResetSelection(A){this.opentui.symbols.textBufferViewResetSelection(A)}textBufferViewGetSelection(A){let q=this.textBufferViewGetSelectionInfo(A);if(q===0xffff_ffff_ffff_ffffn)return null;let g=Number(q>>32n),E=Number(q&0xffff_ffffn);return{start:g,end:E}}textBufferViewGetSelectionInfo(A){return this.opentui.symbols.textBufferViewGetSelectionInfo(A)}textBufferViewSetLocalSelection(A,q,g,E,F,K,Z){let j=K?K.buffer:null,U=Z?Z.buffer:null;return this.opentui.symbols.textBufferViewSetLocalSelection(A,q,g,E,F,j,U)}textBufferViewUpdateSelection(A,q,g,E){let F=g?g.buffer:null,K=E?E.buffer:null;this.opentui.symbols.textBufferViewUpdateSelection(A,q,F,K)}textBufferViewUpdateLocalSelection(A,q,g,E,F,K,Z){let j=K?K.buffer:null,U=Z?Z.buffer:null;return this.opentui.symbols.textBufferViewUpdateLocalSelection(A,q,g,E,F,j,U)}textBufferViewResetLocalSelection(A){this.opentui.symbols.textBufferViewResetLocalSelection(A)}textBufferViewSetWrapWidth(A,q){this.opentui.symbols.textBufferViewSetWrapWidth(A,q)}textBufferViewSetWrapMode(A,q){let g=q==="none"?0:q==="char"?1:2;this.opentui.symbols.textBufferViewSetWrapMode(A,g)}textBufferViewSetViewportSize(A,q,g){this.opentui.symbols.textBufferViewSetViewportSize(A,q,g)}textBufferViewSetViewport(A,q,g,E,F){this.opentui.symbols.textBufferViewSetViewport(A,q,g,E,F)}textBufferViewGetLineInfo(A){let q=new ArrayBuffer(Og.size);this.textBufferViewGetLineInfoDirect(A,qA(q));let g=Og.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}textBufferViewGetLogicalLineInfo(A){let q=new ArrayBuffer(Og.size);this.textBufferViewGetLogicalLineInfoDirect(A,qA(q));let g=Og.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}textBufferViewGetVirtualLineCount(A){return this.opentui.symbols.textBufferViewGetVirtualLineCount(A)}textBufferViewGetLineInfoDirect(A,q){this.opentui.symbols.textBufferViewGetLineInfoDirect(A,q)}textBufferViewGetLogicalLineInfoDirect(A,q){this.opentui.symbols.textBufferViewGetLogicalLineInfoDirect(A,q)}textBufferViewGetSelectedText(A,q,g){let E=this.opentui.symbols.textBufferViewGetSelectedText(A,q,g);return typeof E==="bigint"?Number(E):E}textBufferViewGetPlainText(A,q,g){let E=this.opentui.symbols.textBufferViewGetPlainText(A,q,g);return typeof E==="bigint"?Number(E):E}textBufferViewGetSelectedTextBytes(A,q){let g=new Uint8Array(q),E=this.textBufferViewGetSelectedText(A,qA(g),q);if(E===0)return null;return g.slice(0,E)}textBufferViewGetPlainTextBytes(A,q){let g=new Uint8Array(q),E=this.textBufferViewGetPlainText(A,qA(g),q);if(E===0)return null;return g.slice(0,E)}textBufferViewSetTabIndicator(A,q){this.opentui.symbols.textBufferViewSetTabIndicator(A,q)}textBufferViewSetTabIndicatorColor(A,q){this.opentui.symbols.textBufferViewSetTabIndicatorColor(A,q.buffer)}textBufferViewSetTruncate(A,q){this.opentui.symbols.textBufferViewSetTruncate(A,q)}textBufferViewMeasureForDimensions(A,q,g){let E=new ArrayBuffer(XQ.size),F=qA(new Uint8Array(E));if(!this.opentui.symbols.textBufferViewMeasureForDimensions(A,q,g,F))return null;return XQ.unpack(E)}textBufferAddHighlightByCharRange(A,q){let g=qZ.pack(q);this.opentui.symbols.textBufferAddHighlightByCharRange(A,qA(g))}textBufferAddHighlight(A,q,g){let E=qZ.pack(g);this.opentui.symbols.textBufferAddHighlight(A,q,qA(E))}textBufferRemoveHighlightsByRef(A,q){this.opentui.symbols.textBufferRemoveHighlightsByRef(A,q)}textBufferClearLineHighlights(A,q){this.opentui.symbols.textBufferClearLineHighlights(A,q)}textBufferClearAllHighlights(A){this.opentui.symbols.textBufferClearAllHighlights(A)}textBufferSetSyntaxStyle(A,q){this.opentui.symbols.textBufferSetSyntaxStyle(A,q)}textBufferGetLineHighlights(A,q){let g=new BigUint64Array(1),E=this.opentui.symbols.textBufferGetLineHighlightsPtr(A,q,qA(g));if(!E)return[];let F=Number(g[0]),K=F*qZ.size,Z=aE(E,0,K),j=qZ.unpackList(Z,F);return this.opentui.symbols.textBufferFreeLineHighlights(E,F),j}textBufferGetHighlightCount(A){return this.opentui.symbols.textBufferGetHighlightCount(A)}getArenaAllocatedBytes(){let A=this.opentui.symbols.getArenaAllocatedBytes();return typeof A==="bigint"?Number(A):A}bufferDrawTextBufferView(A,q,g,E){this.opentui.symbols.bufferDrawTextBufferView(A,q,g,E)}bufferDrawEditorView(A,q,g,E){this.opentui.symbols.bufferDrawEditorView(A,q,g,E)}createEditorView(A,q,g){let E=this.opentui.symbols.createEditorView(A,q,g);if(!E)throw new Error("Failed to create EditorView");return E}destroyEditorView(A){this.opentui.symbols.destroyEditorView(A)}editorViewSetViewportSize(A,q,g){this.opentui.symbols.editorViewSetViewportSize(A,q,g)}editorViewSetViewport(A,q,g,E,F,K){this.opentui.symbols.editorViewSetViewport(A,q,g,E,F,K)}editorViewGetViewport(A){let q=new Uint32Array(1),g=new Uint32Array(1),E=new Uint32Array(1),F=new Uint32Array(1);return this.opentui.symbols.editorViewGetViewport(A,qA(q),qA(g),qA(E),qA(F)),{offsetX:q[0],offsetY:g[0],width:E[0],height:F[0]}}editorViewSetScrollMargin(A,q){this.opentui.symbols.editorViewSetScrollMargin(A,q)}editorViewSetWrapMode(A,q){let g=q==="none"?0:q==="char"?1:2;this.opentui.symbols.editorViewSetWrapMode(A,g)}editorViewGetVirtualLineCount(A){return this.opentui.symbols.editorViewGetVirtualLineCount(A)}editorViewGetTotalVirtualLineCount(A){return this.opentui.symbols.editorViewGetTotalVirtualLineCount(A)}editorViewGetTextBufferView(A){let q=this.opentui.symbols.editorViewGetTextBufferView(A);if(!q)throw new Error("Failed to get TextBufferView from EditorView");return q}editorViewGetLineInfo(A){let q=new ArrayBuffer(Og.size);this.opentui.symbols.editorViewGetLineInfoDirect(A,qA(q));let g=Og.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}editorViewGetLogicalLineInfo(A){let q=new ArrayBuffer(Og.size);this.opentui.symbols.editorViewGetLogicalLineInfoDirect(A,qA(q));let g=Og.unpack(q);return{maxLineWidth:g.maxWidth,lineStarts:g.starts,lineWidths:g.widths,lineSources:g.sources,lineWraps:g.wraps}}createEditBuffer(A){let q=A==="wcwidth"?0:1,g=this.opentui.symbols.createEditBuffer(q);if(!g)throw new Error("Failed to create EditBuffer");return g}destroyEditBuffer(A){this.opentui.symbols.destroyEditBuffer(A)}editBufferSetText(A,q){this.opentui.symbols.editBufferSetText(A,q,q.length)}editBufferSetTextFromMem(A,q){this.opentui.symbols.editBufferSetTextFromMem(A,q)}editBufferReplaceText(A,q){this.opentui.symbols.editBufferReplaceText(A,q,q.length)}editBufferReplaceTextFromMem(A,q){this.opentui.symbols.editBufferReplaceTextFromMem(A,q)}editBufferGetText(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editBufferGetText(A,qA(g),q),F=typeof E==="bigint"?Number(E):E;if(F===0)return null;return g.slice(0,F)}editBufferInsertChar(A,q){let g=this.encoder.encode(q);this.opentui.symbols.editBufferInsertChar(A,g,g.length)}editBufferInsertText(A,q){let g=this.encoder.encode(q);this.opentui.symbols.editBufferInsertText(A,g,g.length)}editBufferDeleteChar(A){this.opentui.symbols.editBufferDeleteChar(A)}editBufferDeleteCharBackward(A){this.opentui.symbols.editBufferDeleteCharBackward(A)}editBufferDeleteRange(A,q,g,E,F){this.opentui.symbols.editBufferDeleteRange(A,q,g,E,F)}editBufferNewLine(A){this.opentui.symbols.editBufferNewLine(A)}editBufferDeleteLine(A){this.opentui.symbols.editBufferDeleteLine(A)}editBufferMoveCursorLeft(A){this.opentui.symbols.editBufferMoveCursorLeft(A)}editBufferMoveCursorRight(A){this.opentui.symbols.editBufferMoveCursorRight(A)}editBufferMoveCursorUp(A){this.opentui.symbols.editBufferMoveCursorUp(A)}editBufferMoveCursorDown(A){this.opentui.symbols.editBufferMoveCursorDown(A)}editBufferGotoLine(A,q){this.opentui.symbols.editBufferGotoLine(A,q)}editBufferSetCursor(A,q,g){this.opentui.symbols.editBufferSetCursor(A,q,g)}editBufferSetCursorToLineCol(A,q,g){this.opentui.symbols.editBufferSetCursorToLineCol(A,q,g)}editBufferSetCursorByOffset(A,q){this.opentui.symbols.editBufferSetCursorByOffset(A,q)}editBufferGetCursorPosition(A){let q=new ArrayBuffer(Iq.size);return this.opentui.symbols.editBufferGetCursorPosition(A,qA(q)),Iq.unpack(q)}editBufferGetId(A){return this.opentui.symbols.editBufferGetId(A)}editBufferGetTextBuffer(A){let q=this.opentui.symbols.editBufferGetTextBuffer(A);if(!q)throw new Error("Failed to get TextBuffer from EditBuffer");return q}editBufferDebugLogRope(A){this.opentui.symbols.editBufferDebugLogRope(A)}editBufferUndo(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editBufferUndo(A,qA(g),q),F=typeof E==="bigint"?Number(E):E;if(F===0)return null;return g.slice(0,F)}editBufferRedo(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editBufferRedo(A,qA(g),q),F=typeof E==="bigint"?Number(E):E;if(F===0)return null;return g.slice(0,F)}editBufferCanUndo(A){return this.opentui.symbols.editBufferCanUndo(A)}editBufferCanRedo(A){return this.opentui.symbols.editBufferCanRedo(A)}editBufferClearHistory(A){this.opentui.symbols.editBufferClearHistory(A)}editBufferClear(A){this.opentui.symbols.editBufferClear(A)}editBufferGetNextWordBoundary(A){let q=new ArrayBuffer(Iq.size);return this.opentui.symbols.editBufferGetNextWordBoundary(A,qA(q)),Iq.unpack(q)}editBufferGetPrevWordBoundary(A){let q=new ArrayBuffer(Iq.size);return this.opentui.symbols.editBufferGetPrevWordBoundary(A,qA(q)),Iq.unpack(q)}editBufferGetEOL(A){let q=new ArrayBuffer(Iq.size);return this.opentui.symbols.editBufferGetEOL(A,qA(q)),Iq.unpack(q)}editBufferOffsetToPosition(A,q){let g=new ArrayBuffer(Iq.size);if(!this.opentui.symbols.editBufferOffsetToPosition(A,q,qA(g)))return null;return Iq.unpack(g)}editBufferPositionToOffset(A,q,g){return this.opentui.symbols.editBufferPositionToOffset(A,q,g)}editBufferGetLineStartOffset(A,q){return this.opentui.symbols.editBufferGetLineStartOffset(A,q)}editBufferGetTextRange(A,q,g,E){let F=new Uint8Array(E),K=this.opentui.symbols.editBufferGetTextRange(A,q,g,qA(F),E),Z=typeof K==="bigint"?Number(K):K;if(Z===0)return null;return F.slice(0,Z)}editBufferGetTextRangeByCoords(A,q,g,E,F,K){let Z=new Uint8Array(K),j=this.opentui.symbols.editBufferGetTextRangeByCoords(A,q,g,E,F,qA(Z),K),U=typeof j==="bigint"?Number(j):j;if(U===0)return null;return Z.slice(0,U)}editorViewSetSelection(A,q,g,E,F){let K=E?E.buffer:null,Z=F?F.buffer:null;this.opentui.symbols.editorViewSetSelection(A,q,g,K,Z)}editorViewResetSelection(A){this.opentui.symbols.editorViewResetSelection(A)}editorViewGetSelection(A){let q=this.opentui.symbols.editorViewGetSelection(A);if(q===0xffff_ffff_ffff_ffffn)return null;let g=Number(q>>32n),E=Number(q&0xffff_ffffn);return{start:g,end:E}}editorViewSetLocalSelection(A,q,g,E,F,K,Z,j,U){let G=K?K.buffer:null,Y=Z?Z.buffer:null;return this.opentui.symbols.editorViewSetLocalSelection(A,q,g,E,F,G,Y,j,U)}editorViewUpdateSelection(A,q,g,E){let F=g?g.buffer:null,K=E?E.buffer:null;this.opentui.symbols.editorViewUpdateSelection(A,q,F,K)}editorViewUpdateLocalSelection(A,q,g,E,F,K,Z,j,U){let G=K?K.buffer:null,Y=Z?Z.buffer:null;return this.opentui.symbols.editorViewUpdateLocalSelection(A,q,g,E,F,G,Y,j,U)}editorViewResetLocalSelection(A){this.opentui.symbols.editorViewResetLocalSelection(A)}editorViewGetSelectedTextBytes(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editorViewGetSelectedTextBytes(A,qA(g),q),F=typeof E==="bigint"?Number(E):E;if(F===0)return null;return g.slice(0,F)}editorViewGetCursor(A){let q=new Uint32Array(1),g=new Uint32Array(1);return this.opentui.symbols.editorViewGetCursor(A,qA(q),qA(g)),{row:q[0],col:g[0]}}editorViewGetText(A,q){let g=new Uint8Array(q),E=this.opentui.symbols.editorViewGetText(A,qA(g),q),F=typeof E==="bigint"?Number(E):E;if(F===0)return null;return g.slice(0,F)}editorViewGetVisualCursor(A){let q=new ArrayBuffer(Fq.size);return this.opentui.symbols.editorViewGetVisualCursor(A,qA(q)),Fq.unpack(q)}editorViewMoveUpVisual(A){this.opentui.symbols.editorViewMoveUpVisual(A)}editorViewMoveDownVisual(A){this.opentui.symbols.editorViewMoveDownVisual(A)}editorViewDeleteSelectedText(A){this.opentui.symbols.editorViewDeleteSelectedText(A)}editorViewSetCursorByOffset(A,q){this.opentui.symbols.editorViewSetCursorByOffset(A,q)}editorViewGetNextWordBoundary(A){let q=new ArrayBuffer(Fq.size);return this.opentui.symbols.editorViewGetNextWordBoundary(A,qA(q)),Fq.unpack(q)}editorViewGetPrevWordBoundary(A){let q=new ArrayBuffer(Fq.size);return this.opentui.symbols.editorViewGetPrevWordBoundary(A,qA(q)),Fq.unpack(q)}editorViewGetEOL(A){let q=new ArrayBuffer(Fq.size);return this.opentui.symbols.editorViewGetEOL(A,qA(q)),Fq.unpack(q)}editorViewGetVisualSOL(A){let q=new ArrayBuffer(Fq.size);return this.opentui.symbols.editorViewGetVisualSOL(A,qA(q)),Fq.unpack(q)}editorViewGetVisualEOL(A){let q=new ArrayBuffer(Fq.size);return this.opentui.symbols.editorViewGetVisualEOL(A,qA(q)),Fq.unpack(q)}bufferPushScissorRect(A,q,g,E,F){this.opentui.symbols.bufferPushScissorRect(A,q,g,E,F)}bufferPopScissorRect(A){this.opentui.symbols.bufferPopScissorRect(A)}bufferClearScissorRects(A){this.opentui.symbols.bufferClearScissorRects(A)}bufferPushOpacity(A,q){this.opentui.symbols.bufferPushOpacity(A,q)}bufferPopOpacity(A){this.opentui.symbols.bufferPopOpacity(A)}bufferGetCurrentOpacity(A){return this.opentui.symbols.bufferGetCurrentOpacity(A)}bufferClearOpacity(A){this.opentui.symbols.bufferClearOpacity(A)}getTerminalCapabilities(A){let q=new ArrayBuffer(_Q.size);this.opentui.symbols.getTerminalCapabilities(A,qA(q));let g=_Q.unpack(q);return{kitty_keyboard:g.kitty_keyboard,kitty_graphics:g.kitty_graphics,rgb:g.rgb,unicode:g.unicode,sgr_pixels:g.sgr_pixels,color_scheme_updates:g.color_scheme_updates,explicit_width:g.explicit_width,scaled_text:g.scaled_text,sixel:g.sixel,focus_tracking:g.focus_tracking,sync:g.sync,bracketed_paste:g.bracketed_paste,hyperlinks:g.hyperlinks,explicit_cursor_positioning:g.explicit_cursor_positioning,terminal:{name:g.term_name??"",version:g.term_version??"",from_xtversion:g.term_from_xtversion}}}processCapabilityResponse(A,q){let g=this.encoder.encode(q);this.opentui.symbols.processCapabilityResponse(A,g,g.length)}encodeUnicode(A,q){let g=this.encoder.encode(A),E=q==="wcwidth"?0:1,F=new ArrayBuffer(8),K=new ArrayBuffer(8);if(!this.opentui.symbols.encodeUnicode(g,g.length,qA(F),qA(K),E))return null;let j=new BigUint64Array(F),U=new BigUint64Array(K),G=Number(j[0]),Y=Number(U[0]);if(Y===0)return{ptr:G,data:[]};let M=Y*$Q.size,O=aE(G,0,M),$=$Q.unpackList(O,Y);return{ptr:G,data:$}}freeUnicode(A){this.opentui.symbols.freeUnicode(A.ptr,A.data.length)}bufferDrawChar(A,q,g,E,F,K,Z=0){this.opentui.symbols.bufferDrawChar(A,q,g,E,F.buffer,K.buffer,Z)}createSyntaxStyle(){let A=this.opentui.symbols.createSyntaxStyle();if(!A)throw new Error("Failed to create SyntaxStyle");return A}destroySyntaxStyle(A){this.opentui.symbols.destroySyntaxStyle(A)}syntaxStyleRegister(A,q,g,E,F){let K=this.encoder.encode(q),Z=g?g.buffer:null,j=E?E.buffer:null;return this.opentui.symbols.syntaxStyleRegister(A,K,K.length,Z,j,F)}syntaxStyleResolveByName(A,q){let g=this.encoder.encode(q),E=this.opentui.symbols.syntaxStyleResolveByName(A,g,g.length);return E===0?null:E}syntaxStyleGetStyleCount(A){let q=this.opentui.symbols.syntaxStyleGetStyleCount(A);return typeof q==="bigint"?Number(q):q}editorViewSetPlaceholderStyledText(A,q){let g=q.filter((F)=>F.text.length>0);if(g.length===0){this.opentui.symbols.editorViewSetPlaceholderStyledText(A,null,0);return}let E=MQ.packList(g);this.opentui.symbols.editorViewSetPlaceholderStyledText(A,qA(E),g.length)}editorViewSetTabIndicator(A,q){this.opentui.symbols.editorViewSetTabIndicator(A,q)}editorViewSetTabIndicatorColor(A,q){this.opentui.symbols.editorViewSetTabIndicatorColor(A,q.buffer)}onNativeEvent(A,q){this._nativeEvents.on(A,q)}onceNativeEvent(A,q){this._nativeEvents.once(A,q)}offNativeEvent(A,q){this._nativeEvents.off(A,q)}onAnyNativeEvent(A){this._anyEventHandlers.push(A)}}var lQ,EZ;function Xq(){if(!EZ)try{EZ=new TU(lQ)}catch(A){throw new Error(`Failed to initialize OpenTUI render library: ${A instanceof Error?A.message:"Unknown error"}`)}return EZ}try{EZ=new TU(lQ)}catch(A){}class YZ{lib;bufferPtr;_length=0;_byteSize=0;_lineInfo;_destroyed=!1;_syntaxStyle;_textBytes;_memId;_appendedChunks=[];constructor(A,q){this.lib=A,this.bufferPtr=q}static create(A){return Xq().createTextBuffer(A)}guard(){if(this._destroyed)throw new Error("TextBuffer is destroyed")}setText(A){if(this.guard(),this._textBytes=this.lib.encoder.encode(A),this._memId===void 0)this._memId=this.lib.textBufferRegisterMemBuffer(this.bufferPtr,this._textBytes,!1);else this.lib.textBufferReplaceMemBuffer(this.bufferPtr,this._memId,this._textBytes,!1);this.lib.textBufferSetTextFromMem(this.bufferPtr,this._memId),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0,this._appendedChunks=[]}append(A){this.guard();let q=this.lib.encoder.encode(A);this._appendedChunks.push(q),this.lib.textBufferAppend(this.bufferPtr,q),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0}loadFile(A){if(this.guard(),!this.lib.textBufferLoadFile(this.bufferPtr,A))throw new Error(`Failed to load file: ${A}`);this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0,this._textBytes=void 0}setStyledText(A){this.guard();let q=A.chunks.map((g)=>({text:g.text,fg:g.fg||null,bg:g.bg||null,attributes:g.attributes??0,link:g.link}));this.lib.textBufferSetStyledText(this.bufferPtr,q),this._length=this.lib.textBufferGetLength(this.bufferPtr),this._byteSize=this.lib.textBufferGetByteSize(this.bufferPtr),this._lineInfo=void 0}setDefaultFg(A){this.guard(),this.lib.textBufferSetDefaultFg(this.bufferPtr,A)}setDefaultBg(A){this.guard(),this.lib.textBufferSetDefaultBg(this.bufferPtr,A)}setDefaultAttributes(A){this.guard(),this.lib.textBufferSetDefaultAttributes(this.bufferPtr,A)}resetDefaults(){this.guard(),this.lib.textBufferResetDefaults(this.bufferPtr)}getLineCount(){return this.guard(),this.lib.textBufferGetLineCount(this.bufferPtr)}get length(){return this.guard(),this._length}get byteSize(){return this.guard(),this._byteSize}get ptr(){return this.guard(),this.bufferPtr}getPlainText(){if(this.guard(),this._byteSize===0)return"";let A=this.lib.getPlainTextBytes(this.bufferPtr,this._byteSize);if(!A)return"";return this.lib.decoder.decode(A)}getTextRange(A,q){if(this.guard(),A>=q)return"";if(this._byteSize===0)return"";let g=this.lib.textBufferGetTextRange(this.bufferPtr,A,q,this._byteSize);if(!g)return"";return this.lib.decoder.decode(g)}addHighlightByCharRange(A){this.guard(),this.lib.textBufferAddHighlightByCharRange(this.bufferPtr,A)}addHighlight(A,q){this.guard(),this.lib.textBufferAddHighlight(this.bufferPtr,A,q)}removeHighlightsByRef(A){this.guard(),this.lib.textBufferRemoveHighlightsByRef(this.bufferPtr,A)}clearLineHighlights(A){this.guard(),this.lib.textBufferClearLineHighlights(this.bufferPtr,A)}clearAllHighlights(){this.guard(),this.lib.textBufferClearAllHighlights(this.bufferPtr)}getLineHighlights(A){return this.guard(),this.lib.textBufferGetLineHighlights(this.bufferPtr,A)}getHighlightCount(){return this.guard(),this.lib.textBufferGetHighlightCount(this.bufferPtr)}setSyntaxStyle(A){this.guard(),this._syntaxStyle=A??void 0,this.lib.textBufferSetSyntaxStyle(this.bufferPtr,A?.ptr??null)}getSyntaxStyle(){return this.guard(),this._syntaxStyle??null}setTabWidth(A){this.guard(),this.lib.textBufferSetTabWidth(this.bufferPtr,A)}getTabWidth(){return this.guard(),this.lib.textBufferGetTabWidth(this.bufferPtr)}clear(){this.guard(),this.lib.textBufferClear(this.bufferPtr),this._length=0,this._byteSize=0,this._lineInfo=void 0,this._textBytes=void 0,this._appendedChunks=[]}reset(){this.guard(),this.lib.textBufferReset(this.bufferPtr),this._length=0,this._byteSize=0,this._lineInfo=void 0,this._textBytes=void 0,this._memId=void 0,this._appendedChunks=[]}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyTextBuffer(this.bufferPtr)}}function c$(A,q){if(typeof q.width==="number"){if(q.width<0)throw new TypeError(`Invalid width for Renderable ${A}: ${q.width}`)}if(typeof q.height==="number"){if(q.height<0)throw new TypeError(`Invalid height for Renderable ${A}: ${q.height}`)}}function m6(A){if(typeof A==="string"&&A.endsWith("%")){let q=A.slice(0,-1),g=parseFloat(q);return!Number.isNaN(g)}return!1}function xq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;if(A==="auto")return!0;return m6(A)}function Pq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;return m6(A)}function cq(A){if(typeof A==="number"&&!Number.isNaN(A))return!0;if(A==="auto")return!0;return m6(A)}function d$(A){return A==="relative"||A==="absolute"}function p$(A){return A==="visible"||A==="hidden"||A==="scroll"}function gZ(A){return cq(A)}function VQ(A){if(A===void 0||A==="auto")return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return!1}function Jg(A){if(A===void 0)return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return m6(A)}var iQ=Symbol.for("@opentui/core/Renderable"),tQ;((A)=>{A.LAYOUT_CHANGED="layout-changed",A.ADDED="added",A.REMOVED="removed",A.RESIZED="resized"})(tQ||={});var sQ;((A)=>{A.FOCUSED="focused",A.BLURRED="blurred"})(sQ||={});function y6(A){return!!A?.[iQ]}class bE extends f${[iQ]=!0;static renderableNumber=1;_id;num;_dirty=!1;parent=null;_visible=!0;constructor(A){super();this.num=bE.renderableNumber++,this._id=A.id??`renderable-${this.num}`}get id(){return this._id}set id(A){this._id=A}get isDirty(){return this._dirty}markClean(){this._dirty=!1}markDirty(){this._dirty=!0}destroy(){}destroyRecursively(){}get visible(){return this._visible}set visible(A){this._visible=A}}var QZ=ZZ.Config.create();QZ.setUseWebDefaults(!1);QZ.setPointScaleFactor(1);class DA extends bE{static renderablesByNumber=new Map;_isDestroyed=!1;_ctx;_translateX=0;_translateY=0;_x=0;_y=0;_width;_height;_widthValue=0;_heightValue=0;_zIndex;selectable=!1;buffered;frameBuffer=null;_focusable=!1;_focused=!1;keypressHandler=null;pasteHandler=null;_live=!1;_liveCount=0;_sizeChangeListener=void 0;_mouseListener=null;_mouseListeners={};_pasteListener=void 0;_keyListeners={};yogaNode;_positionType="relative";_overflow="visible";_position={};_opacity=1;_flexShrink=1;renderableMapById=new Map;_childrenInLayoutOrder=[];_childrenInZIndexOrder=[];needsZIndexSort=!1;parent=null;childrenPrimarySortDirty=!0;childrenSortedByPrimaryAxis=[];_shouldUpdateBefore=new Set;onLifecyclePass=null;renderBefore;renderAfter;constructor(A,q){super(q);if(this._ctx=A,DA.renderablesByNumber.set(this.num,this),c$(this.id,q),this.renderBefore=q.renderBefore,this.renderAfter=q.renderAfter,this._width=q.width??"auto",this._height=q.height??"auto",typeof this._width==="number")this._widthValue=this._width;if(typeof this._height==="number")this._heightValue=this._height;if(this._zIndex=q.zIndex??0,this._visible=q.visible!==!1,this.buffered=q.buffered??!1,this._live=q.live??!1,this._liveCount=this._live&&this._visible?1:0,this._opacity=q.opacity!==void 0?Math.max(0,Math.min(1,q.opacity)):1,this.yogaNode=ZZ.Node.create(QZ),this.yogaNode.setDisplay(this._visible?_g.Flex:_g.None),this.setupYogaProperties(q),this.applyEventOptions(q),this.buffered)this.createFrameBuffer()}get id(){return this._id}set id(A){if(this.parent)this.parent.renderableMapById.delete(this.id),this.parent.renderableMapById.set(A,this);super.id=A}get focusable(){return this._focusable}get ctx(){return this._ctx}get visible(){return this._visible}get primaryAxis(){let A=this.yogaNode.getFlexDirection();return A===2||A===3?"row":"column"}set visible(A){if(this._visible===A)return;let q=this._visible;if(this._visible=A,this.yogaNode.setDisplay(A?_g.Flex:_g.None),this._live){if(!q&&A)this.propagateLiveCount(1);else if(q&&!A)this.propagateLiveCount(-1)}if(this._focused)this.blur();this.requestRender()}get opacity(){return this._opacity}set opacity(A){let q=Math.max(0,Math.min(1,A));if(this._opacity!==q)this._opacity=q,this.requestRender()}hasSelection(){return!1}onSelectionChanged(A){return!1}getSelectedText(){return""}shouldStartSelection(A,q){return!1}focus(){if(this._isDestroyed||this._focused||!this._focusable)return;this._ctx.focusRenderable(this),this._focused=!0,this.requestRender(),this.keypressHandler=(A)=>{if(this._isDestroyed)return;if(this._keyListeners.down?.(A),this._isDestroyed)return;if(!A.defaultPrevented&&this.handleKeyPress)this.handleKeyPress(A)},this.pasteHandler=(A)=>{if(this._isDestroyed)return;if(this._pasteListener?.call(this,A),this._isDestroyed)return;if(!A.defaultPrevented&&this.handlePaste)this.handlePaste(A)},this.ctx._internalKeyInput.onInternal("keypress",this.keypressHandler),this.ctx._internalKeyInput.onInternal("paste",this.pasteHandler),this.emit("focused")}blur(){if(!this._focused||!this._focusable)return;if(this._focused=!1,this.requestRender(),this.keypressHandler)this.ctx._internalKeyInput.offInternal("keypress",this.keypressHandler),this.keypressHandler=null;if(this.pasteHandler)this.ctx._internalKeyInput.offInternal("paste",this.pasteHandler),this.pasteHandler=null;this.emit("blurred")}get focused(){return this._focused}get live(){return this._live}get liveCount(){return this._liveCount}set live(A){if(this._live===A)return;if(this._live=A,this._visible){let q=A?1:-1;this.propagateLiveCount(q)}}propagateLiveCount(A){this._liveCount+=A,this.parent?.propagateLiveCount(A)}findDescendantById(A){for(let q of this._childrenInLayoutOrder){if(q.id===A)return q;if(y6(q)){let g=q.findDescendantById(A);if(g)return g}}return}requestRender(){this.markDirty(),this._ctx.requestRender()}get translateX(){return this._translateX}set translateX(A){if(this._translateX===A)return;if(this._translateX=A,this.parent)this.parent.childrenPrimarySortDirty=!0;this.requestRender()}get translateY(){return this._translateY}set translateY(A){if(this._translateY===A)return;if(this._translateY=A,this.parent)this.parent.childrenPrimarySortDirty=!0;this.requestRender()}get x(){if(this.parent)return this.parent.x+this._x+this._translateX;return this._x+this._translateX}set x(A){this.left=A}get top(){return this._position.top}set top(A){if(cq(A)||A===void 0)this.setPosition({top:A})}get right(){return this._position.right}set right(A){if(cq(A)||A===void 0)this.setPosition({right:A})}get bottom(){return this._position.bottom}set bottom(A){if(cq(A)||A===void 0)this.setPosition({bottom:A})}get left(){return this._position.left}set left(A){if(cq(A)||A===void 0)this.setPosition({left:A})}get y(){if(this.parent)return this.parent.y+this._y+this._translateY;return this._y+this._translateY}set y(A){this.top=A}get width(){return this._widthValue}set width(A){if(gZ(A)){if(this._width=A,this.yogaNode.setWidth(A),typeof A==="number"&&this._flexShrink===1)this._flexShrink=0,this.yogaNode.setFlexShrink(0);this.requestRender()}}get height(){return this._heightValue}set height(A){if(gZ(A)){if(this._height=A,this.yogaNode.setHeight(A),typeof A==="number"&&this._flexShrink===1)this._flexShrink=0,this.yogaNode.setFlexShrink(0);this.requestRender()}}get zIndex(){return this._zIndex}set zIndex(A){if(this._zIndex!==A)this._zIndex=A,this.parent?.requestZIndexSort(),this.requestRender()}requestZIndexSort(){this.needsZIndexSort=!0}ensureZIndexSorted(){if(this.needsZIndexSort)this._childrenInZIndexOrder.sort((A,q)=>A.zIndex>q.zIndex?1:A.zIndex<q.zIndex?-1:0),this.needsZIndexSort=!1}getChildrenSortedByPrimaryAxis(){if(!this.childrenPrimarySortDirty&&this.childrenSortedByPrimaryAxis.length===this._childrenInLayoutOrder.length)return this.childrenSortedByPrimaryAxis;let A=this.yogaNode.getFlexDirection(),q=A===2||A===3?"x":"y",g=[...this._childrenInLayoutOrder];return g.sort((E,F)=>{let K=q==="y"?E.y:E.x,Z=q==="y"?F.y:F.x;return K-Z}),this.childrenSortedByPrimaryAxis=g,this.childrenPrimarySortDirty=!1,this.childrenSortedByPrimaryAxis}setupYogaProperties(A){let q=this.yogaNode;if(VQ(A.flexBasis))q.setFlexBasis(A.flexBasis);if(Jg(A.minWidth))q.setMinWidth(A.minWidth);if(Jg(A.minHeight))q.setMinHeight(A.minHeight);if(A.flexGrow!==void 0)q.setFlexGrow(A.flexGrow);else q.setFlexGrow(0);if(A.flexShrink!==void 0)this._flexShrink=A.flexShrink,q.setFlexShrink(A.flexShrink);else{let E=typeof A.width==="number",F=typeof A.height==="number";this._flexShrink=E||F?0:1,q.setFlexShrink(this._flexShrink)}if(q.setFlexDirection(gU(A.flexDirection)),q.setFlexWrap(ZU(A.flexWrap)),q.setAlignItems(qU(A.alignItems)),q.setJustifyContent(EU(A.justifyContent)),q.setAlignSelf(AU(A.alignSelf)),gZ(A.width))this._width=A.width,this.yogaNode.setWidth(A.width);if(gZ(A.height))this._height=A.height,this.yogaNode.setHeight(A.height);if(this._positionType=A.position==="absolute"?"absolute":"relative",this._positionType!=="relative")q.setPositionType(KU(this._positionType));if(this._overflow=A.overflow==="hidden"?"hidden":A.overflow==="scroll"?"scroll":"visible",this._overflow!=="visible")q.setOverflow(FU(this._overflow));if(A.top!==void 0||A.right!==void 0||A.bottom!==void 0||A.left!==void 0)this._position={top:A.top,right:A.right,bottom:A.bottom,left:A.left},this.updateYogaPosition(this._position);if(Jg(A.maxWidth))q.setMaxWidth(A.maxWidth);if(Jg(A.maxHeight))q.setMaxHeight(A.maxHeight);this.setupMarginAndPadding(A)}setupMarginAndPadding(A){let q=this.yogaNode;if(xq(A.margin))q.setMargin(n.Top,A.margin),q.setMargin(n.Right,A.margin),q.setMargin(n.Bottom,A.margin),q.setMargin(n.Left,A.margin);if(xq(A.marginTop))q.setMargin(n.Top,A.marginTop);if(xq(A.marginRight))q.setMargin(n.Right,A.marginRight);if(xq(A.marginBottom))q.setMargin(n.Bottom,A.marginBottom);if(xq(A.marginLeft))q.setMargin(n.Left,A.marginLeft);if(Pq(A.padding))q.setPadding(n.Top,A.padding),q.setPadding(n.Right,A.padding),q.setPadding(n.Bottom,A.padding),q.setPadding(n.Left,A.padding);if(Pq(A.paddingTop))q.setPadding(n.Top,A.paddingTop);if(Pq(A.paddingRight))q.setPadding(n.Right,A.paddingRight);if(Pq(A.paddingBottom))q.setPadding(n.Bottom,A.paddingBottom);if(Pq(A.paddingLeft))q.setPadding(n.Left,A.paddingLeft)}set position(A){if(!d$(A)||this._positionType===A)return;this._positionType=A,this.yogaNode.setPositionType(KU(A)),this.requestRender()}get overflow(){return this._overflow}set overflow(A){if(!p$(A)||this._overflow===A)return;this._overflow=A,this.yogaNode.setOverflow(FU(A)),this.requestRender()}setPosition(A){this._position={...this._position,...A},this.updateYogaPosition(A)}updateYogaPosition(A){let q=this.yogaNode,{top:g,right:E,bottom:F,left:K}=A;if(cq(g))if(g==="auto")q.setPositionAuto(n.Top);else q.setPosition(n.Top,g);if(cq(E))if(E==="auto")q.setPositionAuto(n.Right);else q.setPosition(n.Right,E);if(cq(F))if(F==="auto")q.setPositionAuto(n.Bottom);else q.setPosition(n.Bottom,F);if(cq(K))if(K==="auto")q.setPositionAuto(n.Left);else q.setPosition(n.Left,K);this.requestRender()}set flexGrow(A){if(A==null)this.yogaNode.setFlexGrow(0);else this.yogaNode.setFlexGrow(A);this.requestRender()}set flexShrink(A){let q=A==null?1:A;this._flexShrink=q,this.yogaNode.setFlexShrink(q),this.requestRender()}set flexDirection(A){this.yogaNode.setFlexDirection(gU(A)),this.requestRender()}set flexWrap(A){this.yogaNode.setFlexWrap(ZU(A)),this.requestRender()}set alignItems(A){this.yogaNode.setAlignItems(qU(A)),this.requestRender()}set justifyContent(A){this.yogaNode.setJustifyContent(EU(A)),this.requestRender()}set alignSelf(A){this.yogaNode.setAlignSelf(AU(A)),this.requestRender()}set flexBasis(A){if(VQ(A))this.yogaNode.setFlexBasis(A),this.requestRender()}set minWidth(A){if(Jg(A))this.yogaNode.setMinWidth(A),this.requestRender()}set maxWidth(A){if(Jg(A))this.yogaNode.setMaxWidth(A),this.requestRender()}set minHeight(A){if(Jg(A))this.yogaNode.setMinHeight(A),this.requestRender()}set maxHeight(A){if(Jg(A))this.yogaNode.setMaxHeight(A),this.requestRender()}set margin(A){if(xq(A)){let q=this.yogaNode;q.setMargin(n.Top,A),q.setMargin(n.Right,A),q.setMargin(n.Bottom,A),q.setMargin(n.Left,A),this.requestRender()}}set marginTop(A){if(xq(A))this.yogaNode.setMargin(n.Top,A),this.requestRender()}set marginRight(A){if(xq(A))this.yogaNode.setMargin(n.Right,A),this.requestRender()}set marginBottom(A){if(xq(A))this.yogaNode.setMargin(n.Bottom,A),this.requestRender()}set marginLeft(A){if(xq(A))this.yogaNode.setMargin(n.Left,A),this.requestRender()}set padding(A){if(Pq(A)){let q=this.yogaNode;q.setPadding(n.Top,A),q.setPadding(n.Right,A),q.setPadding(n.Bottom,A),q.setPadding(n.Left,A),this.requestRender()}}set paddingTop(A){if(Pq(A))this.yogaNode.setPadding(n.Top,A),this.requestRender()}set paddingRight(A){if(Pq(A))this.yogaNode.setPadding(n.Right,A),this.requestRender()}set paddingBottom(A){if(Pq(A))this.yogaNode.setPadding(n.Bottom,A),this.requestRender()}set paddingLeft(A){if(Pq(A))this.yogaNode.setPadding(n.Left,A),this.requestRender()}getLayoutNode(){return this.yogaNode}updateFromLayout(){let A=this.yogaNode.getComputedLayout(),q=this._x,g=this._y,E=this._widthValue,F=this._heightValue;this._x=A.left,this._y=A.top;let K=Math.max(A.width,1),Z=Math.max(A.height,1),j=E!==K||F!==Z;if(this._widthValue=K,this._heightValue=Z,j)this.onLayoutResize(K,Z);if(q!==this._x||g!==this._y){if(this.parent)this.parent.childrenPrimarySortDirty=!0}}onLayoutResize(A,q){if(this._visible)this.handleFrameBufferResize(A,q),this.onResize(A,q),this.requestRender()}handleFrameBufferResize(A,q){if(!this.buffered)return;if(A<=0||q<=0)return;if(this.frameBuffer)this.frameBuffer.resize(A,q);else this.createFrameBuffer()}createFrameBuffer(){let A=this.width,q=this.height;if(A<=0||q<=0)return;try{let g=this._ctx.widthMethod;this.frameBuffer=$g.create(A,q,g,{respectAlpha:!0,id:`framebuffer-${this.id}`})}catch(g){console.error(`Failed to create frame buffer for ${this.id}:`,g),this.frameBuffer=null}}onResize(A,q){this.onSizeChange?.(),this.emit("resize")}replaceParent(A){if(A.parent)A.parent.remove(A.id);A.parent=this}add(A,q){if(!A)return-1;let g=jU(this._ctx,A);if(!g)return-1;if(g.isDestroyed)return console.warn(`Renderable with id ${g.id} was already destroyed, skipping add`),-1;let E=q!==void 0?this._childrenInLayoutOrder[q]:void 0;if(E)return this.insertBefore(g,E);if(g.parent===this)this.yogaNode.removeChild(g.getLayoutNode()),this._childrenInLayoutOrder.splice(this._childrenInLayoutOrder.indexOf(g),1);else{if(this.replaceParent(g),this.needsZIndexSort=!0,this.renderableMapById.set(g.id,g),this._childrenInZIndexOrder.push(g),typeof g.onLifecyclePass==="function")this._ctx.registerLifecyclePass(g);if(g._liveCount>0)this.propagateLiveCount(g._liveCount)}let F=g.getLayoutNode(),K=this._childrenInLayoutOrder.length;return this._childrenInLayoutOrder.push(g),this.yogaNode.insertChild(F,K),this.childrenPrimarySortDirty=!0,this._shouldUpdateBefore.add(g),this.requestRender(),K}insertBefore(A,q){if(!q)return this.add(A);if(!A)return-1;let g=jU(this._ctx,A);if(!g)return-1;if(g.isDestroyed)return console.warn(`Renderable with id ${g.id} was already destroyed, skipping insertBefore`),-1;if(!y6(q))throw new Error("Anchor must be a Renderable");if(q.isDestroyed)return console.warn(`Anchor with id ${q.id} was already destroyed, skipping insertBefore`),-1;if(!this.renderableMapById.has(q.id))return console.warn(`Anchor with id ${q.id} does not exist within the parent ${this.id}, skipping insertBefore`),-1;if(g===q||g.id===q.id)return console.warn(`Anchor is the same as the node ${g.id} being inserted, skipping insertBefore`),-1;if(g.parent===this)this.yogaNode.removeChild(g.getLayoutNode()),this._childrenInLayoutOrder.splice(this._childrenInLayoutOrder.indexOf(g),1);else{if(this.replaceParent(g),this.needsZIndexSort=!0,this.renderableMapById.set(g.id,g),this._childrenInZIndexOrder.push(g),typeof g.onLifecyclePass==="function")this._ctx.registerLifecyclePass(g);if(g._liveCount>0)this.propagateLiveCount(g._liveCount)}this.childrenPrimarySortDirty=!0;let E=this._childrenInLayoutOrder.indexOf(q),F=Math.max(0,Math.min(E,this._childrenInLayoutOrder.length));return this._childrenInLayoutOrder.splice(F,0,g),this.yogaNode.insertChild(g.getLayoutNode(),F),this._shouldUpdateBefore.add(g),this.requestRender(),F}getRenderable(A){return this.renderableMapById.get(A)}remove(A){if(!A)return;if(this.renderableMapById.has(A)){let q=this.renderableMapById.get(A);if(q){if(q._liveCount>0)this.propagateLiveCount(-q._liveCount);let g=q.getLayoutNode();this.yogaNode.removeChild(g),this.requestRender(),q.onRemove(),q.parent=null,this._ctx.unregisterLifecyclePass(q),this.renderableMapById.delete(A);let E=this._childrenInLayoutOrder.findIndex((K)=>K.id===A);if(E!==-1)this._childrenInLayoutOrder.splice(E,1);let F=this._childrenInZIndexOrder.findIndex((K)=>K.id===A);if(F!==-1)this._childrenInZIndexOrder.splice(F,1);this.childrenPrimarySortDirty=!0}}}onRemove(){}getChildren(){return[...this._childrenInLayoutOrder]}getChildrenCount(){return this._childrenInLayoutOrder.length}updateLayout(A,q=[]){if(!this.visible)return;if(this.onUpdate(A),this._isDestroyed)return;if(this.updateFromLayout(),this._shouldUpdateBefore.size>0){for(let K of this._shouldUpdateBefore)if(!K.isDestroyed)K.updateFromLayout();this._shouldUpdateBefore.clear()}if(this._isDestroyed)return;let g=this._opacity<1;if(g)q.push({action:"pushOpacity",opacity:this._opacity});q.push({action:"render",renderable:this}),this.ensureZIndexSorted();let E=this._overflow!=="visible"&&this.width>0&&this.height>0;if(E){let K=this.getScissorRect();q.push({action:"pushScissorRect",x:K.x,y:K.y,width:K.width,height:K.height,screenX:this.x,screenY:this.y})}let F=this._getVisibleChildren();for(let K of this._childrenInZIndexOrder){if(!F.includes(K.num)){K.updateFromLayout();continue}K.updateLayout(A,q)}if(E)q.push({action:"popScissorRect"});if(g)q.push({action:"popOpacity"})}render(A,q){let g=A;if(this.buffered&&this.frameBuffer)g=this.frameBuffer;if(this.renderBefore)this.renderBefore.call(this,g,q);if(this.renderSelf(g,q),this.renderAfter)this.renderAfter.call(this,g,q);if(this.markClean(),this._ctx.addToHitGrid(this.x,this.y,this.width,this.height,this.num),this.buffered&&this.frameBuffer)A.drawFrameBuffer(this.x,this.y,this.frameBuffer)}_getVisibleChildren(){return this._childrenInZIndexOrder.map((A)=>A.num)}onUpdate(A){}getScissorRect(){return{x:this.buffered?0:this.x,y:this.buffered?0:this.y,width:this.width,height:this.height}}renderSelf(A,q){}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)return;if(this._isDestroyed=!0,this.parent)this.parent.remove(this.id);if(this.frameBuffer)this.frameBuffer.destroy(),this.frameBuffer=null;for(let A of this._childrenInLayoutOrder)this.remove(A.id);this._childrenInLayoutOrder=[],this.renderableMapById.clear(),DA.renderablesByNumber.delete(this.num),this.blur(),this.removeAllListeners(),this.destroySelf();try{this.yogaNode.free()}catch(A){}}destroyRecursively(){let A=[...this._childrenInLayoutOrder];for(let q of A)q.destroyRecursively();this.destroy()}destroySelf(){}processMouseEvent(A){if(this._mouseListener?.call(this,A),this._mouseListeners[A.type]?.call(this,A),this.onMouseEvent(A),this.parent&&!A.propagationStopped)this.parent.processMouseEvent(A)}onMouseEvent(A){}set onMouse(A){if(A)this._mouseListener=A;else this._mouseListener=null}set onMouseDown(A){if(A)this._mouseListeners.down=A;else delete this._mouseListeners.down}set onMouseUp(A){if(A)this._mouseListeners.up=A;else delete this._mouseListeners.up}set onMouseMove(A){if(A)this._mouseListeners.move=A;else delete this._mouseListeners.move}set onMouseDrag(A){if(A)this._mouseListeners.drag=A;else delete this._mouseListeners.drag}set onMouseDragEnd(A){if(A)this._mouseListeners["drag-end"]=A;else delete this._mouseListeners["drag-end"]}set onMouseDrop(A){if(A)this._mouseListeners.drop=A;else delete this._mouseListeners.drop}set onMouseOver(A){if(A)this._mouseListeners.over=A;else delete this._mouseListeners.over}set onMouseOut(A){if(A)this._mouseListeners.out=A;else delete this._mouseListeners.out}set onMouseScroll(A){if(A)this._mouseListeners.scroll=A;else delete this._mouseListeners.scroll}set onPaste(A){this._pasteListener=A}get onPaste(){return this._pasteListener}set onKeyDown(A){if(A)this._keyListeners.down=A;else delete this._keyListeners.down}get onKeyDown(){return this._keyListeners.down}set onSizeChange(A){this._sizeChangeListener=A}get onSizeChange(){return this._sizeChangeListener}applyEventOptions(A){this.onMouse=A.onMouse,this.onMouseDown=A.onMouseDown,this.onMouseUp=A.onMouseUp,this.onMouseMove=A.onMouseMove,this.onMouseDrag=A.onMouseDrag,this.onMouseDragEnd=A.onMouseDragEnd,this.onMouseDrop=A.onMouseDrop,this.onMouseOver=A.onMouseOver,this.onMouseOut=A.onMouseOut,this.onMouseScroll=A.onMouseScroll,this.onPaste=A.onPaste,this.onKeyDown=A.onKeyDown,this.onSizeChange=A.onSizeChange}}class IU extends DA{renderList=[];constructor(A){super(A,{id:"__root__",zIndex:0,visible:!0,width:A.width,height:A.height,enableLayout:!0});if(this.yogaNode)this.yogaNode.free();this.yogaNode=ZZ.Node.create(QZ),this.yogaNode.setWidth(A.width),this.yogaNode.setHeight(A.height),this.yogaNode.setFlexDirection(Kq.Column),this.calculateLayout()}render(A,q){if(!this.visible)return;for(let g of this._ctx.getLifecyclePasses())g.onLifecyclePass?.call(g);if(this.yogaNode.isDirty())this.calculateLayout();this.renderList.length=0,this.updateLayout(q,this.renderList),this._ctx.clearHitGridScissorRects();for(let g=1;g<this.renderList.length;g++){let E=this.renderList[g];switch(E.action){case"render":if(!E.renderable.isDestroyed)E.renderable.render(A,q);break;case"pushScissorRect":A.pushScissorRect(E.x,E.y,E.width,E.height),this._ctx.pushHitGridScissorRect(E.screenX,E.screenY,E.width,E.height);break;case"popScissorRect":A.popScissorRect(),this._ctx.popHitGridScissorRect();break;case"pushOpacity":A.pushOpacity(E.opacity);break;case"popOpacity":A.popOpacity();break}}}propagateLiveCount(A){let q=this._liveCount;if(this._liveCount+=A,q===0&&this._liveCount>0)this._ctx.requestLive();else if(q>0&&this._liveCount===0)this._ctx.dropLive()}calculateLayout(){this.yogaNode.calculateLayout(this.width,this.height,D6.LTR),this.emit("layout-changed")}resize(A,q){this.width=A,this.height=q,this.emit("resized",{width:A,height:q})}}var l$=Symbol.for("@opentui/core/VNode");function i$(A){return typeof A==="function"&&A.prototype&&DA.prototype.isPrototypeOf(A.prototype)}function nQ(A){let q=[];for(let g of A)if(Array.isArray(g))q.push(...nQ(g));else if(g!==null&&g!==void 0&&g!==!1)q.push(g);return q}function rQ(A){return A&&A[l$]}function jU(A,q){if(y6(q))return q;if(rQ(q))return KZ(A,q);return console.warn("maybeMakeRenderable received an invalid node",u$.inspect(q,{depth:2})),null}function UU(A,q){if(!q||Object.keys(q).length===0)return A;let g=new Map,E=(K)=>{if(g.has(K)){let j=g.get(K);if(j!==void 0)return j}let Z=A.findDescendantById(K);if(Z)g.set(K,Z);return Z};return new Proxy(A,{get(K,Z,j){if(typeof Z==="string"&&q[Z]){let U=E(q[Z]);if(U){let G=U[Z];if(typeof G==="function")return G.bind(U);return G}}return Reflect.get(K,Z,j)},set(K,Z,j,U){if(typeof Z==="string"&&q[Z]){let G=E(q[Z]);if(G)return Reflect.set(G,Z,j)}return Reflect.set(K,Z,j,U)}})}function KZ(A,q){if(y6(q))return q;if(!q||typeof q!=="object")throw new TypeError("mount() received an invalid vnode");let g=q,{type:E,props:F}=g,K=nQ(g.children||[]),Z=g.__delegateMap;if(i$(E)){let G=new E(A,F||{});for(let O of K)if(y6(O))G.add(O);else{let $=KZ(A,O);G.add($)}let Y=UU(G,Z),M=g.__pendingCalls;if(M)for(let O of M)if(O.isProperty)Y[O.method]=O.args[0];else Y[O.method].apply(Y,O.args);return Y}let j=E(F||{},K),U=KZ(A,j);return UU(U,Z)}class eQ extends o${output=[];constructor(){super()}get size(){return this.output.length}write(A,q){this.output.push({stream:A,output:q}),this.emit("write",A,q)}claimOutput(){let A=this.output.map((q)=>q.output).join("");return this.clear(),A}clear(){this.output=[]}}class GU extends r${stream;capture;isTTY=!0;columns=process.stdout.columns||80;rows=process.stdout.rows||24;constructor(A,q){super();this.stream=A,this.capture=q}_write(A,q,g){let E=A.toString();this.capture.write(this.stream,E),g()}getColorDepth(){return process.stdout.getColorDepth?.()||8}}var kE={enter:"return",esc:"escape"};function DE(A,q){return{...A,...q}}function tg(A,q){let g=new Map;for(let E of A){let F=ng(E);g.set(F,E)}for(let E of q){let F=ng(E);g.set(F,E)}return Array.from(g.values())}function ng(A){return`${A.name}:${A.ctrl?1:0}:${A.shift?1:0}:${A.meta?1:0}:${A.super?1:0}`}function sg(A,q){let g=new Map,E=q||{};for(let F of A){let K=ng(F);g.set(K,F.action)}for(let F of A){let K=E[F.name]||F.name;if(K!==F.name){let Z=ng({...F,name:K});g.set(Z,F.action)}}return g}function e$(A){let q=[];if(A.ctrl)q.push("ctrl");if(A.shift)q.push("shift");if(A.meta)q.push("meta");if(A.super)q.push("super");return q.push(A.name),q.join("+")}function AX(){let q=new Error().stack?.split(`
|
|
15
|
+
`).slice(5)||[];if(!q.length)return null;let g=q[0].trim(),E=/at\s+(?:([\w$.<>]+)\s+\()?((?:\/|[A-Za-z]:\\)[^:]+):(\d+):(\d+)\)?/,F=g.match(E);if(!F)return null;let K=F[1]||"<anonymous>",Z=F[2],j=Z.split(/[\\/]/).pop()||"<unknown>",U=parseInt(F[3],10)||0,G=parseInt(F[4],10)||0;return{functionName:K,fullPath:Z,fileName:j,lineNumber:U,columnNumber:G}}var Mq=rg("ConsoleCapture",()=>new eQ);WA({name:"OTUI_USE_CONSOLE",description:"Whether to use the console. Will not capture console output if set to false.",type:"boolean",default:!0});WA({name:"SHOW_CONSOLE",description:"Show the console at startup if set to true.",type:"boolean",default:!1});class AO extends oQ{_cachedLogs=[];MAX_CACHE_SIZE=1000;_collectCallerInfo=!1;_cachingEnabled=!0;_originalConsole=null;get cachedLogs(){return this._cachedLogs}constructor(){super()}activate(){if(!this._originalConsole)this._originalConsole=global.console;this.setupConsoleCapture(),this.overrideConsoleMethods()}setupConsoleCapture(){if(!XA.OTUI_USE_CONSOLE)return;let A=new GU("stdout",Mq),q=new GU("stderr",Mq);global.console=new t$({stdout:A,stderr:q,colorMode:!0,inspectOptions:{compact:!1,breakLength:80,depth:2}})}overrideConsoleMethods(){console.log=(...A)=>{this.appendToConsole("LOG",...A)},console.info=(...A)=>{this.appendToConsole("INFO",...A)},console.warn=(...A)=>{this.appendToConsole("WARN",...A)},console.error=(...A)=>{this.appendToConsole("ERROR",...A)},console.debug=(...A)=>{this.appendToConsole("DEBUG",...A)}}setCollectCallerInfo(A){this._collectCallerInfo=A}clearConsole(){this._cachedLogs=[]}setCachingEnabled(A){this._cachingEnabled=A}deactivate(){this.restoreOriginalConsole()}restoreOriginalConsole(){if(this._originalConsole)global.console=this._originalConsole;this.setupConsoleCapture()}addLogEntry(A,...q){let g=this._collectCallerInfo?AX():null,E=[new Date,A,q,g];if(this._cachingEnabled){if(this._cachedLogs.length>=this.MAX_CACHE_SIZE)this._cachedLogs.shift();this._cachedLogs.push(E)}return E}appendToConsole(A,...q){if(this._cachedLogs.length>=this.MAX_CACHE_SIZE)this._cachedLogs.shift();let g=this.addLogEntry(A,...q);this.emit("entry",g)}destroy(){this.deactivate()}}var uA=rg("TerminalConsoleCache",()=>{let A=new AO;return process.on("exit",()=>{A.destroy()}),A}),qO;((A)=>{A.TOP="top",A.BOTTOM="bottom",A.LEFT="left",A.RIGHT="right"})(qO||={});var nj=[{name:"up",action:"scroll-up"},{name:"down",action:"scroll-down"},{name:"up",shift:!0,action:"scroll-to-top"},{name:"down",shift:!0,action:"scroll-to-bottom"},{name:"p",ctrl:!0,action:"position-previous"},{name:"o",ctrl:!0,action:"position-next"},{name:"+",action:"size-increase"},{name:"=",shift:!0,action:"size-increase"},{name:"-",action:"size-decrease"},{name:"s",ctrl:!0,action:"save-logs"},{name:"c",ctrl:!0,shift:!0,action:"copy-selection"}],qX={position:"bottom",sizePercent:30,zIndex:1/0,colorInfo:"#00FFFF",colorWarn:"#FFFF00",colorError:"#FF0000",colorDebug:"#808080",colorDefault:"#FFFFFF",backgroundColor:OA.fromValues(0.1,0.1,0.1,0.7),startInDebugMode:!1,title:"Console",titleBarColor:OA.fromValues(0.05,0.05,0.05,0.7),titleBarTextColor:"#FFFFFF",cursorColor:"#00A0FF",maxStoredLogs:2000,maxDisplayLines:3000,onCopySelection:void 0,keyBindings:void 0,keyAliasMap:void 0,selectionColor:OA.fromValues(0.3,0.5,0.8,0.5),copyButtonColor:"#00A0FF"},Mg=2;class xU extends oQ{isVisible=!1;isFocused=!1;renderer;keyHandler;options;_debugModeEnabled=!1;frameBuffer=null;consoleX=0;consoleY=0;consoleWidth=0;consoleHeight=0;scrollTopIndex=0;isScrolledToBottom=!0;currentLineIndex=0;_displayLines=[];_allLogEntries=[];_needsFrameBufferUpdate=!1;_entryListener;_selectionStart=null;_selectionEnd=null;_isSelecting=!1;_copyButtonBounds={x:0,y:0,width:0,height:0};_autoScrollInterval=null;_keyBindingsMap;_keyAliasMap;_keyBindings;_mergedKeyBindings;_actionHandlers;markNeedsRerender(){this._needsFrameBufferUpdate=!0,this.renderer.requestRender()}getCopyButtonLabel(){let A=this._mergedKeyBindings.filter((g)=>g.action==="copy-selection"),q=A[A.length-1];if(q)return`[Copy (${e$(q)})]`;return"[Copy]"}_rgbaInfo;_rgbaWarn;_rgbaError;_rgbaDebug;_rgbaDefault;backgroundColor;_rgbaTitleBar;_rgbaTitleBarText;_title;_rgbaCursor;_rgbaSelection;_rgbaCopyButton;_positions=["top","right","bottom","left"];constructor(A,q={}){super();if(this.renderer=A,this.options={...qX,...q},this.keyHandler=this.handleKeyPress.bind(this),this._debugModeEnabled=this.options.startInDebugMode,uA.setCollectCallerInfo(this._debugModeEnabled),this._rgbaInfo=u(this.options.colorInfo),this._rgbaWarn=u(this.options.colorWarn),this._rgbaError=u(this.options.colorError),this._rgbaDebug=u(this.options.colorDebug),this._rgbaDefault=u(this.options.colorDefault),this.backgroundColor=u(this.options.backgroundColor),this._rgbaTitleBar=u(this.options.titleBarColor),this._rgbaTitleBarText=u(this.options.titleBarTextColor||this.options.colorDefault),this._title=this.options.title,this._rgbaCursor=u(this.options.cursorColor),this._rgbaSelection=u(this.options.selectionColor),this._rgbaCopyButton=u(this.options.copyButtonColor),this._keyAliasMap=DE(kE,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[],this._mergedKeyBindings=tg(nj,this._keyBindings),this._keyBindingsMap=sg(this._mergedKeyBindings,this._keyAliasMap),this._actionHandlers=this.buildActionHandlers(),this._updateConsoleDimensions(),this._scrollToBottom(!0),this._entryListener=(g)=>{this._handleNewLog(g)},uA.on("entry",this._entryListener),XA.SHOW_CONSOLE)this.show()}buildActionHandlers(){return new Map([["scroll-up",()=>this.scrollUp()],["scroll-down",()=>this.scrollDown()],["scroll-to-top",()=>this.scrollToTop()],["scroll-to-bottom",()=>this.scrollToBottomAction()],["position-previous",()=>this.positionPrevious()],["position-next",()=>this.positionNext()],["size-increase",()=>this.sizeIncrease()],["size-decrease",()=>this.sizeDecrease()],["save-logs",()=>this.saveLogsAction()],["copy-selection",()=>this.triggerCopyAction()]])}activate(){uA.activate()}deactivate(){uA.deactivate()}_handleNewLog(A){if(!this.isVisible)return;if(this._allLogEntries.push(A),this._allLogEntries.length>this.options.maxStoredLogs)this._allLogEntries.splice(0,this._allLogEntries.length-this.options.maxStoredLogs);let q=this._processLogEntry(A);if(this._displayLines.push(...q),this._displayLines.length>this.options.maxDisplayLines){this._displayLines.splice(0,this._displayLines.length-this.options.maxDisplayLines);let g=this._displayLines.length-this.options.maxDisplayLines;this.scrollTopIndex=Math.max(0,this.scrollTopIndex-g)}if(this.isScrolledToBottom)this._scrollToBottom();this.markNeedsRerender()}_updateConsoleDimensions(A,q){let g=A??this.renderer.width,E=q??this.renderer.height,F=this.options.sizePercent/100;switch(this.options.position){case"top":this.consoleX=0,this.consoleY=0,this.consoleWidth=g,this.consoleHeight=Math.max(1,Math.floor(E*F));break;case"bottom":this.consoleHeight=Math.max(1,Math.floor(E*F)),this.consoleWidth=g,this.consoleX=0,this.consoleY=E-this.consoleHeight;break;case"left":this.consoleWidth=Math.max(1,Math.floor(g*F)),this.consoleHeight=E,this.consoleX=0,this.consoleY=0;break;case"right":this.consoleWidth=Math.max(1,Math.floor(g*F)),this.consoleHeight=E,this.consoleY=0,this.consoleX=g-this.consoleWidth;break}this.currentLineIndex=Math.max(0,Math.min(this.currentLineIndex,this.consoleHeight-1))}handleKeyPress(A){if(A.name==="escape"){this.blur();return}let q=ng({name:A.name,ctrl:A.ctrl,shift:A.shift,meta:A.meta,super:A.super,action:"scroll-up"}),g=this._keyBindingsMap.get(q);if(g){let E=this._actionHandlers.get(g);if(E){E();return}}}scrollUp(){let A=Math.max(1,this.consoleHeight-1);if(this.currentLineIndex>0)this.currentLineIndex--,this.markNeedsRerender();else if(this.scrollTopIndex>0)this.scrollTopIndex--,this.isScrolledToBottom=!1,this.markNeedsRerender();return!0}scrollDown(){let A=this._displayLines.length,q=Math.max(1,this.consoleHeight-1),g=Math.max(0,A-q);if(this.currentLineIndex<q-1&&this.scrollTopIndex+this.currentLineIndex<A-1)this.currentLineIndex++,this.markNeedsRerender();else if(this.scrollTopIndex<g)this.scrollTopIndex++,this.isScrolledToBottom=this.scrollTopIndex===g,this.markNeedsRerender();return!0}scrollToTop(){if(this.scrollTopIndex>0||this.currentLineIndex>0)this.scrollTopIndex=0,this.currentLineIndex=0,this.isScrolledToBottom=this._displayLines.length<=Math.max(1,this.consoleHeight-1),this.markNeedsRerender();return!0}scrollToBottomAction(){let A=Math.max(1,this.consoleHeight-1),q=Math.max(0,this._displayLines.length-A);if(this.scrollTopIndex<q||!this.isScrolledToBottom)this._scrollToBottom(!0),this.markNeedsRerender();return!0}positionPrevious(){let q=(this._positions.indexOf(this.options.position)-1+this._positions.length)%this._positions.length;return this.options.position=this._positions[q],this.resize(this.renderer.width,this.renderer.height),!0}positionNext(){let q=(this._positions.indexOf(this.options.position)+1)%this._positions.length;return this.options.position=this._positions[q],this.resize(this.renderer.width,this.renderer.height),!0}sizeIncrease(){return this.options.sizePercent=Math.min(100,this.options.sizePercent+5),this.resize(this.renderer.width,this.renderer.height),!0}sizeDecrease(){return this.options.sizePercent=Math.max(10,this.options.sizePercent-5),this.resize(this.renderer.width,this.renderer.height),!0}saveLogsAction(){return this.saveLogsToFile(),!0}triggerCopyAction(){return this.triggerCopy(),!0}attachStdin(){if(this.isFocused)return;this.renderer.keyInput.on("keypress",this.keyHandler),this.isFocused=!0}detachStdin(){if(!this.isFocused)return;this.renderer.keyInput.off("keypress",this.keyHandler),this.isFocused=!1}formatTimestamp(A){return new Intl.DateTimeFormat("en-US",{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).format(A)}formatArguments(A){return A.map((q)=>{if(q instanceof Error){let g=q;return`Error: ${g.message}
|
|
16
16
|
`+(g.stack?`${g.stack}
|
|
17
|
-
`:"")}if(typeof q==="object"&&q!==null)try{return
|
|
18
|
-
`)}updateFrameBuffer(){if(!this.frameBuffer)return;this.frameBuffer.clear(this.backgroundColor);let A=this._displayLines,q=A.length,g=Math.max(1,this.consoleHeight-1);this.frameBuffer.fillRect(0,0,this.consoleWidth,1,this._rgbaTitleBar);let E=`${this._title}${this.isFocused?" (Focused)":""}`,F=Math.max(0,Math.floor((this.consoleWidth-E.length)/2));this.frameBuffer.drawText(E,F,0,this._rgbaTitleBarText,this._rgbaTitleBar);let K=this.getCopyButtonLabel(),Z=this.consoleWidth-K.length-1;if(Z>=0){let M=this.hasSelection(),
|
|
19
|
-
`);for(let M=0;M<Y.length;M++){let
|
|
20
|
-
`)}clearSelection(){this._selectionStart=null,this._selectionEnd=null,this._isSelecting=!1,this.stopAutoScroll()}stopAutoScroll(){if(this._autoScrollInterval!==null)clearInterval(this._autoScrollInterval),this._autoScrollInterval=null}startAutoScroll(A){this.stopAutoScroll(),this._autoScrollInterval=setInterval(()=>{if(A==="up")if(this.scrollTopIndex>0){if(this.scrollTopIndex--,this.isScrolledToBottom=!1,this._selectionEnd)this._selectionEnd={line:this.scrollTopIndex,col:this._selectionEnd.col};this.markNeedsRerender()}else this.stopAutoScroll();else{let q=this._displayLines.length,g=Math.max(1,this.consoleHeight-1),E=Math.max(0,q-g);if(this.scrollTopIndex<E){if(this.scrollTopIndex++,this.isScrolledToBottom=this.scrollTopIndex===E,this._selectionEnd){let F=this.scrollTopIndex+g-1;this._selectionEnd={line:Math.min(F,q-1),col:this._selectionEnd.col}}this.markNeedsRerender()}else this.stopAutoScroll()}},50)}triggerCopy(){if(!this.hasSelection())return;let A=this.getSelectedText();if(A&&this.options.onCopySelection){try{this.options.onCopySelection(A)}catch{}this.clearSelection(),this.markNeedsRerender()}}getLineSelectionRange(A){let q=this.normalizeSelection();if(!q)return null;if(A<q.startLine||A>q.endLine)return null;let g=this._displayLines[A];if(!g)return null;let E=g.indent?" ".repeat(
|
|
21
|
-
`);
|
|
17
|
+
`:"")}if(typeof q==="object"&&q!==null)try{return WQ.inspect(q,{depth:2})}catch(g){return String(q)}try{return WQ.inspect(q,{depth:2})}catch(g){return String(q)}}).join(" ")}resize(A,q){if(this._updateConsoleDimensions(A,q),this.frameBuffer){this.frameBuffer.resize(this.consoleWidth,this.consoleHeight);let g=this._displayLines.length,E=Math.max(1,this.consoleHeight-1),F=Math.max(0,g-E);this.scrollTopIndex=Math.min(this.scrollTopIndex,F),this.isScrolledToBottom=this.scrollTopIndex===F;let K=Math.min(E,g-this.scrollTopIndex);if(this.currentLineIndex=Math.max(0,Math.min(this.currentLineIndex,K-1)),this.isVisible)this.markNeedsRerender()}}clear(){uA.clearConsole(),this._allLogEntries=[],this._displayLines=[],this.markNeedsRerender()}toggle(){if(this.isVisible)if(this.isFocused)this.hide();else this.focus();else this.show();if(!this.renderer.isRunning)this.renderer.requestRender()}focus(){this.attachStdin(),this._scrollToBottom(!0),this.markNeedsRerender()}blur(){this.detachStdin(),this.markNeedsRerender()}show(){if(!this.isVisible){if(this.isVisible=!0,this._processCachedLogs(),uA.setCachingEnabled(!1),!this.frameBuffer)this.frameBuffer=$g.create(this.consoleWidth,this.consoleHeight,this.renderer.widthMethod,{respectAlpha:this.backgroundColor.a<1,id:"console framebuffer"});let A=uA.cachedLogs.length,q=Math.min(this.consoleHeight,A);this.currentLineIndex=Math.max(0,q-1),this.scrollTopIndex=0,this._scrollToBottom(!0),this.focus(),this.markNeedsRerender()}}hide(){if(this.isVisible)this.isVisible=!1,this.blur(),uA.setCachingEnabled(!0)}destroy(){this.stopAutoScroll(),this.hide(),this.deactivate(),uA.off("entry",this._entryListener)}getCachedLogs(){return uA.cachedLogs.map((A)=>A[0].toISOString()+" "+A.slice(1).join(" ")).join(`
|
|
18
|
+
`)}updateFrameBuffer(){if(!this.frameBuffer)return;this.frameBuffer.clear(this.backgroundColor);let A=this._displayLines,q=A.length,g=Math.max(1,this.consoleHeight-1);this.frameBuffer.fillRect(0,0,this.consoleWidth,1,this._rgbaTitleBar);let E=`${this._title}${this.isFocused?" (Focused)":""}`,F=Math.max(0,Math.floor((this.consoleWidth-E.length)/2));this.frameBuffer.drawText(E,F,0,this._rgbaTitleBarText,this._rgbaTitleBar);let K=this.getCopyButtonLabel(),Z=this.consoleWidth-K.length-1;if(Z>=0){let M=this.hasSelection(),O=OA.fromInts(100,100,100,255),$=M?this._rgbaCopyButton:O;this.frameBuffer.drawText(K,Z,0,$,this._rgbaTitleBar),this._copyButtonBounds={x:Z,y:0,width:K.length,height:1}}else this._copyButtonBounds={x:-1,y:-1,width:0,height:0};let j=this.scrollTopIndex,U=Math.min(j+g,q),G=A.slice(j,U),Y=1;for(let M=0;M<G.length;M++){if(Y>=this.consoleHeight)break;let O=G[M],$=j+M,_=this._rgbaDefault;switch(O.level){case"INFO":_=this._rgbaInfo;break;case"WARN":_=this._rgbaWarn;break;case"ERROR":_=this._rgbaError;break;case"DEBUG":_=this._rgbaDebug;break}let x=O.indent?" ".repeat(Mg):"",N=O.text,L=this.consoleWidth-1-(O.indent?Mg:0);if(this.isFocused&&Y-1===this.currentLineIndex)this.frameBuffer.drawText(">",0,Y,this._rgbaCursor,this.backgroundColor);else this.frameBuffer.drawText(" ",0,Y,this._rgbaDefault,this.backgroundColor);let k=`${x}${N.substring(0,L)}`,C=this.getLineSelectionRange($);if(C){let i=Math.max(0,C.start),p=Math.min(k.length,C.end);if(i>0)this.frameBuffer.drawText(k.substring(0,i),1,Y,_);if(i<p)this.frameBuffer.fillRect(1+i,Y,p-i,1,this._rgbaSelection),this.frameBuffer.drawText(k.substring(i,p),1+i,Y,_,this._rgbaSelection);if(p<k.length)this.frameBuffer.drawText(k.substring(p),1+p,Y,_)}else this.frameBuffer.drawText(k,1,Y,_);Y++}}renderToBuffer(A){if(!this.isVisible||!this.frameBuffer)return;if(this._needsFrameBufferUpdate)this.updateFrameBuffer(),this._needsFrameBufferUpdate=!1;A.drawFrameBuffer(this.consoleX,this.consoleY,this.frameBuffer)}setDebugMode(A){if(this._debugModeEnabled=A,uA.setCollectCallerInfo(A),this.isVisible)this.markNeedsRerender()}toggleDebugMode(){this.setDebugMode(!this._debugModeEnabled)}set keyBindings(A){this._keyBindings=A,this._mergedKeyBindings=tg(nj,A),this._keyBindingsMap=sg(this._mergedKeyBindings,this._keyAliasMap),this.markNeedsRerender()}set keyAliasMap(A){this._keyAliasMap=DE(kE,A),this._mergedKeyBindings=tg(nj,this._keyBindings),this._keyBindingsMap=sg(this._mergedKeyBindings,this._keyAliasMap),this.markNeedsRerender()}set onCopySelection(A){this.options.onCopySelection=A}get onCopySelection(){return this.options.onCopySelection}_scrollToBottom(A=!1){let q=this._displayLines.length,g=Math.max(1,this.consoleHeight-1),E=Math.max(0,q-g);this.scrollTopIndex=E,this.isScrolledToBottom=!0;let F=Math.min(g,q-this.scrollTopIndex);if(A||this.currentLineIndex>=F)this.currentLineIndex=Math.max(0,F-1)}_processLogEntry(A){let[q,g,E,F]=A,K=[],Z=this.formatTimestamp(q),j=F?`${F.fileName}:${F.lineNumber}`:"unknown",U=`[${Z}] [${g}]`+(this._debugModeEnabled?` [${j}]`:"")+" ",Y=this.formatArguments(E).split(`
|
|
19
|
+
`);for(let M=0;M<Y.length;M++){let O=Y[M],$=M===0,_=this.consoleWidth-1-($?0:Mg),x=$?U:" ".repeat(Mg),N=$?x+O:O,L=0;while(L<N.length||$&&L===0&&N.length===0){let P=N.substring(L,L+_),k=L===0;if(K.push({text:k&&!$?x+P:P,level:g,indent:!$||!k}),L+=_,$&&L===0&&N.length===0)break}}return K}_processCachedLogs(){let A=[...uA.cachedLogs];if(uA.clearConsole(),this._allLogEntries.push(...A),this._allLogEntries.length>this.options.maxStoredLogs)this._allLogEntries.splice(0,this._allLogEntries.length-this.options.maxStoredLogs);for(let q of A){let g=this._processLogEntry(q);this._displayLines.push(...g)}if(this._displayLines.length>this.options.maxDisplayLines)this._displayLines.splice(0,this._displayLines.length-this.options.maxDisplayLines)}hasSelection(){if(this._selectionStart===null||this._selectionEnd===null)return!1;return this._selectionStart.line!==this._selectionEnd.line||this._selectionStart.col!==this._selectionEnd.col}normalizeSelection(){if(!this._selectionStart||!this._selectionEnd)return null;let A=this._selectionStart,q=this._selectionEnd;if(A.line<q.line||A.line===q.line&&A.col<=q.col)return{startLine:A.line,startCol:A.col,endLine:q.line,endCol:q.col};else return{startLine:q.line,startCol:q.col,endLine:A.line,endCol:A.col}}getSelectedText(){let A=this.normalizeSelection();if(!A)return"";let q=[];for(let g=A.startLine;g<=A.endLine;g++){if(g<0||g>=this._displayLines.length)continue;let E=this._displayLines[g],F=E.indent?" ".repeat(Mg):"",K=this.consoleWidth-1-(E.indent?Mg:0),Z=F+E.text.substring(0,K),j=Z;if(g===A.startLine&&g===A.endLine)j=Z.substring(A.startCol,A.endCol);else if(g===A.startLine)j=Z.substring(A.startCol);else if(g===A.endLine)j=Z.substring(0,A.endCol);q.push(j)}return q.join(`
|
|
20
|
+
`)}clearSelection(){this._selectionStart=null,this._selectionEnd=null,this._isSelecting=!1,this.stopAutoScroll()}stopAutoScroll(){if(this._autoScrollInterval!==null)clearInterval(this._autoScrollInterval),this._autoScrollInterval=null}startAutoScroll(A){this.stopAutoScroll(),this._autoScrollInterval=setInterval(()=>{if(A==="up")if(this.scrollTopIndex>0){if(this.scrollTopIndex--,this.isScrolledToBottom=!1,this._selectionEnd)this._selectionEnd={line:this.scrollTopIndex,col:this._selectionEnd.col};this.markNeedsRerender()}else this.stopAutoScroll();else{let q=this._displayLines.length,g=Math.max(1,this.consoleHeight-1),E=Math.max(0,q-g);if(this.scrollTopIndex<E){if(this.scrollTopIndex++,this.isScrolledToBottom=this.scrollTopIndex===E,this._selectionEnd){let F=this.scrollTopIndex+g-1;this._selectionEnd={line:Math.min(F,q-1),col:this._selectionEnd.col}}this.markNeedsRerender()}else this.stopAutoScroll()}},50)}triggerCopy(){if(!this.hasSelection())return;let A=this.getSelectedText();if(A&&this.options.onCopySelection){try{this.options.onCopySelection(A)}catch{}this.clearSelection(),this.markNeedsRerender()}}getLineSelectionRange(A){let q=this.normalizeSelection();if(!q)return null;if(A<q.startLine||A>q.endLine)return null;let g=this._displayLines[A];if(!g)return null;let E=g.indent?" ".repeat(Mg):"",F=this.consoleWidth-1-(g.indent?Mg:0),K=E.length+Math.min(g.text.length,F),Z=0,j=K;if(A===q.startLine)Z=Math.max(0,q.startCol);if(A===q.endLine)j=Math.min(K,q.endCol);if(Z>=j)return null;return{start:Z,end:j}}handleMouse(A){if(!this.isVisible)return!1;let q=A.x-this.consoleX,g=A.y-this.consoleY;if(q<0||q>=this.consoleWidth||g<0||g>=this.consoleHeight)return!1;if(A.type==="scroll"&&A.scroll){if(A.scroll.direction==="up")this.scrollUp();else if(A.scroll.direction==="down")this.scrollDown();return!0}if(g===0){if(A.type==="down"&&A.button===0&&q>=this._copyButtonBounds.x&&q<this._copyButtonBounds.x+this._copyButtonBounds.width)return this.triggerCopy(),!0;return!0}let E=this.scrollTopIndex+(g-1),F=Math.max(0,q-1);if(A.type==="down"&&A.button===0)return this.clearSelection(),this._selectionStart={line:E,col:F},this._selectionEnd={line:E,col:F},this._isSelecting=!0,this.markNeedsRerender(),!0;if(A.type==="drag"&&this._isSelecting){this._selectionEnd={line:E,col:F};let K=Math.max(1,this.consoleHeight-1),Z=g-1;if(Z<=0)this.startAutoScroll("up");else if(Z>=K-1)this.startAutoScroll("down");else this.stopAutoScroll();return this.markNeedsRerender(),!0}if(A.type==="up"){if(this._isSelecting)this._selectionEnd={line:E,col:F},this._isSelecting=!1,this.stopAutoScroll(),this.markNeedsRerender();return!0}return!0}get visible(){return this.isVisible}get bounds(){return{x:this.consoleX,y:this.consoleY,width:this.consoleWidth,height:this.consoleHeight}}saveLogsToFile(){try{let q=`_console_${Date.now()}.log`,g=n$.join(process.cwd(),q),E=[...this._allLogEntries,...uA.cachedLogs],F=[];for(let[Z,j,U,G]of E){let Y=this.formatTimestamp(Z),M=G?`${G.fileName}:${G.lineNumber}`:"unknown",O=`[${Y}] [${j}]`+(this._debugModeEnabled?` [${M}]`:"")+" ",$=this.formatArguments(U);F.push(O+$)}let K=F.join(`
|
|
21
|
+
`);s$.writeFileSync(g,K,"utf8"),console.info(`Console logs saved to: ${q}`)}catch(A){console.error("Failed to save console logs:",A)}}}var fq={switchToAlternateScreen:"\x1B[?1049h",switchToMainScreen:"\x1B[?1049l",reset:"\x1B[0m",scrollDown:(A)=>`\x1B[${A}T`,scrollUp:(A)=>`\x1B[${A}S`,moveCursor:(A,q)=>`\x1B[${A};${q}H`,moveCursorAndClear:(A,q)=>`\x1B[${A};${q}H\x1B[J`,setRgbBackground:(A,q,g)=>`\x1B[48;2;${A};${q};${g}m`,resetBackground:"\x1B[49m",bracketedPasteStart:"\x1B[200~",bracketedPasteEnd:"\x1B[201~"};function PU(A,q,g="column",E=10,F=16){if(A.width<=0||A.height<=0)return[];if(q.length===0)return[];if(q.length<F)return q;let K=A.y-E,Z=A.y+A.height+E,j=A.x-E,U=A.x+A.width+E,G=g==="row",Y=q,M=Y.length;if(M===0)return[];let O=G?j:K,$=G?U:Z,_=0,x=M-1,N=-1;while(_<=x){let p=_+x>>1,a=Y[p],z=G?a.x:a.y;if((G?a.x+a.width:a.y+a.height)<O)_=p+1;else if(z>$)x=p-1;else{N=p;break}}let L=[];if(N===-1)N=_>0?_-1:0;let P=50,k=N,C=0;while(k-1>=0){let p=Y[k-1];if((G?p.x+p.width:p.y+p.height)<=O){if(C++,C>=P)break}else C=0;k--}let i=N+1;while(i<M){let p=Y[i];if((G?p.x:p.y)>=$)break;i++}for(let p=k;p<i;p++){let a=Y[p],z=G?a.x:a.y;if((G?a.x+a.width:a.y+a.height)<=O)continue;if(z>=$)break;if(G){if(a.y+a.height<K)continue;if(a.y>Z)continue}else{if(a.x+a.width<j)continue;if(a.x>U)continue}L.push(a)}if(L.length>1)L.sort((p,a)=>p.zIndex>a.zIndex?1:p.zIndex<a.zIndex?-1:0);return L}function EX(A){if(/\x1b\[\?\d+(?:;\d+)*\$y/.test(A))return!0;if(/\x1b\[1;(?!1R)\d+R/.test(A))return!0;if(/\x1bP>\|[\s\S]*?\x1b\\/.test(A))return!0;if(/\x1b_G[\s\S]*?\x1b\\/.test(A))return!0;if(/\x1b\[\?\d+(?:;\d+)?u/.test(A))return!0;if(/\x1b\[\?[0-9;]*c/.test(A))return!0;return!1}function FX(A){return/\x1b\[4;\d+;\d+t/.test(A)}function KX(A){let q=A.match(/\x1b\[4;(\d+);(\d+)t/);if(q)return{width:parseInt(q[2]),height:parseInt(q[1])};return null}WA({name:"OTUI_DUMP_CAPTURES",description:"Dump captured output when the renderer exits.",type:"boolean",default:!1});WA({name:"OTUI_NO_NATIVE_RENDER",description:"Disable native rendering. This will not actually output ansi and is useful for debugging.",type:"boolean",default:!1});WA({name:"OTUI_USE_ALTERNATE_SCREEN",description:"Whether to use the console. Will not capture console output if set to false.",type:"boolean",default:!0});WA({name:"OTUI_OVERRIDE_STDOUT",description:"Override the stdout stream. This is useful for debugging.",type:"boolean",default:!0});WA({name:"OTUI_DEBUG",description:"Enable debug mode to capture all raw input for debugging purposes.",type:"boolean",default:!1});WA({name:"OTUI_SHOW_STATS",description:"Show the debug overlay at startup.",type:"boolean",default:!1});var gO=1,ZX=2,EO=4,jX=8,UX=16;function FO(A){if(!A)return 0;let q=0;if(A.disambiguate!==!1)q|=gO;if(A.alternateKeys!==!1)q|=EO;if(A.events===!0)q|=ZX;if(A.allKeysAsEscapes===!0)q|=jX;if(A.reportText===!0)q|=UX;return q}class kA{type;button;x;y;source;modifiers;scroll;target;isSelecting;_propagationStopped=!1;_defaultPrevented=!1;get propagationStopped(){return this._propagationStopped}get defaultPrevented(){return this._defaultPrevented}constructor(A,q){this.target=A,this.type=q.type,this.button=q.button,this.x=q.x,this.y=q.y,this.modifiers=q.modifiers,this.scroll=q.scroll,this.source=q.source,this.isSelecting=q.isSelecting}stopPropagation(){this._propagationStopped=!0}preventDefault(){this._defaultPrevented=!0}}var KO;((A)=>{A[A.LEFT=0]="LEFT",A[A.MIDDLE=1]="MIDDLE",A[A.RIGHT=2]="RIGHT",A[A.WHEEL_UP=4]="WHEEL_UP",A[A.WHEEL_DOWN=5]="WHEEL_DOWN"})(KO||={});var NQ=rg("RendererTracker",()=>{let A=new Set;return{addRenderer:(q)=>{A.add(q)},removeRenderer:(q)=>{if(A.delete(q),A.size===0){if(process.stdin.pause(),j$("tree-sitter-client"))fQ().destroy(),Z$("tree-sitter-client")}}}});async function RU(A={}){if(process.argv.includes("--delay-start"))await new Promise((M)=>setTimeout(M,5000));let q=A.stdin||process.stdin,g=A.stdout||process.stdout,E=g.columns||80,F=g.rows||24,K=A.experimental_splitHeight&&A.experimental_splitHeight>0?A.experimental_splitHeight:F,Z=Xq(),j=Z.createRenderer(E,K);if(!j)throw new Error("Failed to create renderer");if(A.useThread===void 0)A.useThread=!0;if(process.platform==="linux")A.useThread=!1;Z.setUseThread(j,A.useThread);let U=A.useKittyKeyboard??{},G=FO(U);Z.setKittyKeyboardFlags(j,G);let Y=new OZ(Z,j,q,g,E,F,A);return await Y.setupTerminal(),Y}var ZO;((A)=>{A.DEBUG_OVERLAY_TOGGLE="debugOverlay:toggle",A.DESTROY="destroy"})(ZO||={});var jO;((A)=>{A.IDLE="idle",A.AUTO_STARTED="auto_started",A.EXPLICIT_STARTED="explicit_started",A.EXPLICIT_PAUSED="explicit_paused",A.EXPLICIT_SUSPENDED="explicit_suspended",A.EXPLICIT_STOPPED="explicit_stopped"})(jO||={});class OZ extends gX{static animationFrameId=0;lib;rendererPtr;stdin;stdout;exitOnCtrlC;exitSignals;_exitListenersAdded=!1;_isDestroyed=!1;_destroyPending=!1;_destroyFinalized=!1;nextRenderBuffer;currentRenderBuffer;_isRunning=!1;targetFps=30;maxFps=60;automaticMemorySnapshot=!1;memorySnapshotInterval;memorySnapshotTimer=null;lastMemorySnapshot={heapUsed:0,heapTotal:0,arrayBuffers:0};root;width;height;_useThread=!1;gatherStats=!1;frameTimes=[];maxStatSamples=300;postProcessFns=[];backgroundColor=OA.fromInts(0,0,0,0);waitingForPixelResolution=!1;rendering=!1;renderingNative=!1;renderTimeout=null;lastTime=0;frameCount=0;lastFpsTime=0;currentFps=0;targetFrameTime=1000/this.targetFps;minTargetFrameTime=1000/this.maxFps;immediateRerenderRequested=!1;updateScheduled=!1;liveRequestCounter=0;_controlState="idle";frameCallbacks=[];renderStats={frameCount:0,fps:0,renderTime:0,frameCallbackTime:0};debugOverlay={enabled:XA.OTUI_SHOW_STATS,corner:3};_console;_resolution=null;_keyHandler;_stdinBuffer;animationRequest=new Map;resizeTimeoutId=null;capabilityTimeoutId=null;resizeDebounceDelay=100;enableMouseMovement=!1;_useMouse=!0;_useAlternateScreen=XA.OTUI_USE_ALTERNATE_SCREEN;_suspendedMouseEnabled=!1;_previousControlState="idle";capturedRenderable;lastOverRenderableNum=0;lastOverRenderable;currentSelection=null;selectionContainers=[];_splitHeight=0;renderOffset=0;_terminalWidth=0;_terminalHeight=0;_terminalIsSetup=!1;realStdoutWrite;captureCallback=()=>{if(this._splitHeight>0)this.requestRender()};_useConsole=!0;mouseParser=new CE;sigwinchHandler=(()=>{let A=this.stdout.columns||80,q=this.stdout.rows||24;this.handleResize(A,q)}).bind(this);_capabilities=null;_latestPointer={x:0,y:0};_hasPointer=!1;_lastPointerModifiers={shift:!1,alt:!1,ctrl:!1};_currentFocusedRenderable=null;lifecyclePasses=new Set;_openConsoleOnError=!0;_paletteDetector=null;_cachedPalette=null;_paletteDetectionPromise=null;_onDestroy;inputHandlers=[];prependedInputHandlers=[];idleResolvers=[];_debugInputs=[];_debugModeEnabled=XA.OTUI_DEBUG;handleError=((A)=>{if(console.error(A),this._openConsoleOnError)this.console.show()}).bind(this);dumpOutputCache(A=""){let q=this.console.getCachedLogs(),g=Mq.claimOutput();if(g.length>0||q.length>0)this.realStdoutWrite.call(this.stdout,A);if(q.length>0)this.realStdoutWrite.call(this.stdout,`Console cache:
|
|
22
22
|
`),this.realStdoutWrite.call(this.stdout,q);if(g.length>0)this.realStdoutWrite.call(this.stdout,`
|
|
23
23
|
Captured output:
|
|
24
24
|
`),this.realStdoutWrite.call(this.stdout,g+`
|
|
25
|
-
`);this.realStdoutWrite.call(this.stdout,
|
|
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(
|
|
27
|
-
`.repeat(A);if(U[3]===0)j=O;else j=yq.setRgbBackground(U[0],U[1],U[2])+O+yq.resetBackground}return this.writeOut(F+Z+g+j),!0}enableMouse(){this._useMouse=!0,this.lib.enableMouse(this.rendererPtr,this.enableMouseMovement)}disableMouse(){this._useMouse=!1,this.setCapturedRenderable(void 0),this.mouseParser.reset(),this.lib.disableMouse(this.rendererPtr)}enableKittyKeyboard(A=3){this.lib.enableKittyKeyboard(this.rendererPtr,A)}disableKittyKeyboard(){this.lib.disableKittyKeyboard(this.rendererPtr)}set useThread(A){this._useThread=A,this.lib.setUseThread(this.rendererPtr,A)}async setupTerminal(){if(this._terminalIsSetup)return;if(this._terminalIsSetup=!0,this.lib.setupTerminal(this.rendererPtr,this._useAlternateScreen),this._capabilities=this.lib.getTerminalCapabilities(this.rendererPtr),this.debugOverlay.enabled){if(this.lib.setDebugOverlay(this.rendererPtr,!0,this.debugOverlay.corner),!this.memorySnapshotInterval)this.memorySnapshotInterval=3000,this.startMemorySnapshotTimer(),this.automaticMemorySnapshot=!0}if(this.capabilityTimeoutId=setTimeout(()=>{this.capabilityTimeoutId=null,this.removeInputHandler(this.capabilityHandler)},5000),this._useMouse)this.enableMouse();this.queryPixelResolution()}stdinListener=((A)=>{if(this._useMouse&&this.handleMouseData(A))return;this._stdinBuffer.process(A)}).bind(this);addInputHandler(A){this.inputHandlers.push(A)}prependInputHandler(A){this.inputHandlers.unshift(A)}removeInputHandler(A){this.inputHandlers=this.inputHandlers.filter((q)=>q!==A)}capabilityHandler=((A)=>{if(x9(A))return this.lib.processCapabilityResponse(this.rendererPtr,A),this._capabilities=this.lib.getTerminalCapabilities(this.rendererPtr),this.emit("capabilities",this._capabilities),!0;return!1}).bind(this);focusHandler=((A)=>{if(A==="\x1B[I")return this.emit("focus"),!0;if(A==="\x1B[O")return this.emit("blur"),!0;return!1}).bind(this);setupInput(){for(let A of this.prependedInputHandlers)this.addInputHandler(A);if(this.addInputHandler((A)=>{if(T9(A)&&this.waitingForPixelResolution){let q=I9(A);if(q)this._resolution=q,this.waitingForPixelResolution=!1;return!0}return!1}),this.addInputHandler(this.capabilityHandler),this.addInputHandler(this.focusHandler),this.addInputHandler((A)=>{return this._keyHandler.processInput(A)}),this.stdin.setRawMode)this.stdin.setRawMode(!0);this.stdin.resume(),this.stdin.setEncoding("utf8"),this.stdin.on("data",this.stdinListener),this._stdinBuffer.on("data",(A)=>{if(this._debugModeEnabled)this._debugInputs.push({timestamp:new Date().toISOString(),sequence:A});for(let q of this.inputHandlers)if(q(A))return}),this._stdinBuffer.on("paste",(A)=>{this._keyHandler.processPaste(A)})}handleMouseData(A){let q=this.mouseParser.parseMouseEvent(A);if(q){if(this._splitHeight>0){if(q.y<this.renderOffset)return!1;q.y-=this.renderOffset}if(this._latestPointer.x=q.x,this._latestPointer.y=q.y,this._hasPointer=!0,this._lastPointerModifiers=q.modifiers,this._console.visible){let Z=this._console.bounds;if(q.x>=Z.x&&q.x<Z.x+Z.width&&q.y>=Z.y&&q.y<Z.y+Z.height){let j=new CA(null,q);if(this._console.handleMouse(j))return!0}}if(q.type==="scroll"){let Z=this.hitTest(q.x,q.y),j=kA.renderablesByNumber.get(Z);if(j){let U=new CA(j,q);j.processMouseEvent(U)}return!0}let g=this.hitTest(q.x,q.y),E=g===this.lastOverRenderableNum;this.lastOverRenderableNum=g;let F=kA.renderablesByNumber.get(g);if(q.type==="down"&&q.button===0&&!this.currentSelection?.isSelecting&&!q.modifiers.ctrl){if(F&&F.selectable&&!F.isDestroyed&&F.shouldStartSelection(q.x,q.y)){this.startSelection(F,q.x,q.y);let Z=new CA(F,q);return F.processMouseEvent(Z),!0}}if(q.type==="drag"&&this.currentSelection?.isSelecting){if(this.updateSelection(F,q.x,q.y),F){let Z=new CA(F,{...q,isSelecting:!0});F.processMouseEvent(Z)}return!0}if(q.type==="up"&&this.currentSelection?.isSelecting){if(F){let Z=new CA(F,{...q,isSelecting:!0});F.processMouseEvent(Z)}return this.finishSelection(),!0}if(q.type==="down"&&q.button===0&&this.currentSelection){if(q.modifiers.ctrl)return this.currentSelection.isSelecting=!0,this.updateSelection(F,q.x,q.y),!0}if(!E&&(q.type==="drag"||q.type==="move")){if(this.lastOverRenderable&&this.lastOverRenderable!==this.capturedRenderable){let Z=new CA(this.lastOverRenderable,{...q,type:"out"});this.lastOverRenderable.processMouseEvent(Z)}if(this.lastOverRenderable=F,F){let Z=new CA(F,{...q,type:"over",source:this.capturedRenderable});F.processMouseEvent(Z)}}if(this.capturedRenderable&&q.type!=="up"){let Z=new CA(this.capturedRenderable,q);return this.capturedRenderable.processMouseEvent(Z),!0}if(this.capturedRenderable&&q.type==="up"){let Z=new CA(this.capturedRenderable,{...q,type:"drag-end"});if(this.capturedRenderable.processMouseEvent(Z),this.capturedRenderable.processMouseEvent(new CA(this.capturedRenderable,q)),F){let j=new CA(F,{...q,type:"drop",source:this.capturedRenderable});F.processMouseEvent(j)}this.lastOverRenderable=this.capturedRenderable,this.lastOverRenderableNum=this.capturedRenderable.num,this.setCapturedRenderable(void 0),this.requestRender()}let K=void 0;if(F){if(q.type==="drag"&&q.button===0)this.setCapturedRenderable(F);else this.setCapturedRenderable(void 0);K=new CA(F,q),F.processMouseEvent(K)}else this.setCapturedRenderable(void 0),this.lastOverRenderable=void 0;if(!K?.defaultPrevented&&q.type==="down"&&this.currentSelection)this.clearSelection();return!0}return!1}recheckHoverState(){if(this._isDestroyed||!this._hasPointer)return;if(this.capturedRenderable)return;let A=this.hitTest(this._latestPointer.x,this._latestPointer.y),q=kA.renderablesByNumber.get(A),g=this.lastOverRenderable;if(g?.num===A){this.lastOverRenderableNum=A;return}let E={type:"move",button:0,x:this._latestPointer.x,y:this._latestPointer.y,modifiers:this._lastPointerModifiers};if(g){let F=new CA(g,{...E,type:"out"});g.processMouseEvent(F)}if(this.lastOverRenderable=q,this.lastOverRenderableNum=A,q){let F=new CA(q,{...E,type:"over"});q.processMouseEvent(F)}}hitTest(A,q){return this.lib.checkHit(this.rendererPtr,A,q)}takeMemorySnapshot(){if(this._isDestroyed)return;let A=process.memoryUsage();this.lastMemorySnapshot={heapUsed:A.heapUsed,heapTotal:A.heapTotal,arrayBuffers:A.arrayBuffers},this.lib.updateMemoryStats(this.rendererPtr,this.lastMemorySnapshot.heapUsed,this.lastMemorySnapshot.heapTotal,this.lastMemorySnapshot.arrayBuffers),this.emit("memory:snapshot",this.lastMemorySnapshot)}startMemorySnapshotTimer(){this.stopMemorySnapshotTimer(),this.memorySnapshotTimer=setInterval(()=>{this.takeMemorySnapshot()},this.memorySnapshotInterval)}stopMemorySnapshotTimer(){if(this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null}setMemorySnapshotInterval(A){if(this.memorySnapshotInterval=A,this._isRunning&&A>0)this.startMemorySnapshotTimer();else if(A<=0&&this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null}handleResize(A,q){if(this._isDestroyed)return;if(this._splitHeight>0){this.processResize(A,q);return}if(this.resizeTimeoutId!==null)clearTimeout(this.resizeTimeoutId),this.resizeTimeoutId=null;this.resizeTimeoutId=setTimeout(()=>{this.resizeTimeoutId=null,this.processResize(A,q)},this.resizeDebounceDelay)}queryPixelResolution(){this.waitingForPixelResolution=!0,this.lib.queryPixelResolution(this.rendererPtr)}processResize(A,q){if(A===this._terminalWidth&&q===this._terminalHeight)return;let g=this._terminalWidth;if(this._terminalWidth=A,this._terminalHeight=q,this.queryPixelResolution(),this.setCapturedRenderable(void 0),this.mouseParser.reset(),this._splitHeight>0){if(A<g){let E=this._terminalHeight-this._splitHeight*2,F=yq.moveCursorAndClear(E,1);this.writeOut(F)}this.renderOffset=q-this._splitHeight,this.width=A,this.height=this._splitHeight,this.currentRenderBuffer.clear(this.backgroundColor),this.lib.setRenderOffset(this.rendererPtr,this.renderOffset)}else this.width=A,this.height=q;this.lib.resizeRenderer(this.rendererPtr,this.width,this.height),this.nextRenderBuffer=this.lib.getNextBuffer(this.rendererPtr),this.currentRenderBuffer=this.lib.getCurrentBuffer(this.rendererPtr),this._console.resize(this.width,this.height),this.root.resize(this.width,this.height),this.emit("resize",this.width,this.height),this.requestRender()}setBackgroundColor(A){let q=d(A);this.lib.setBackgroundColor(this.rendererPtr,q),this.backgroundColor=q,this.nextRenderBuffer.clear(q),this.requestRender()}toggleDebugOverlay(){let A=!this.debugOverlay.enabled;if(A&&!this.memorySnapshotInterval)this.memorySnapshotInterval=3000,this.startMemorySnapshotTimer(),this.automaticMemorySnapshot=!0;else if(!A&&this.automaticMemorySnapshot)this.stopMemorySnapshotTimer(),this.memorySnapshotInterval=0,this.automaticMemorySnapshot=!1;this.debugOverlay.enabled=!this.debugOverlay.enabled,this.lib.setDebugOverlay(this.rendererPtr,this.debugOverlay.enabled,this.debugOverlay.corner),this.emit("debugOverlay:toggle",this.debugOverlay.enabled),this.requestRender()}configureDebugOverlay(A){this.debugOverlay.enabled=A.enabled??this.debugOverlay.enabled,this.debugOverlay.corner=A.corner??this.debugOverlay.corner,this.lib.setDebugOverlay(this.rendererPtr,this.debugOverlay.enabled,this.debugOverlay.corner),this.requestRender()}setTerminalTitle(A){this.lib.setTerminalTitle(this.rendererPtr,A)}dumpHitGrid(){this.lib.dumpHitGrid(this.rendererPtr)}dumpBuffers(A){this.lib.dumpBuffers(this.rendererPtr,A)}dumpStdoutBuffer(A){this.lib.dumpStdoutBuffer(this.rendererPtr,A)}static setCursorPosition(A,q,g,E=!0){Jq().setCursorPosition(A.rendererPtr,q,g,E)}static setCursorStyle(A,q,g=!1,E){let F=Jq();if(F.setCursorStyle(A.rendererPtr,q,g),E)F.setCursorColor(A.rendererPtr,E)}static setCursorColor(A,q){Jq().setCursorColor(A.rendererPtr,q)}setCursorPosition(A,q,g=!0){this.lib.setCursorPosition(this.rendererPtr,A,q,g)}setCursorStyle(A,q=!1,g){if(this.lib.setCursorStyle(this.rendererPtr,A,q),g)this.lib.setCursorColor(this.rendererPtr,g)}setCursorColor(A){this.lib.setCursorColor(this.rendererPtr,A)}getCursorState(){return this.lib.getCursorState(this.rendererPtr)}addPostProcessFn(A){this.postProcessFns.push(A)}removePostProcessFn(A){this.postProcessFns=this.postProcessFns.filter((q)=>q!==A)}clearPostProcessFns(){this.postProcessFns=[]}setFrameCallback(A){this.frameCallbacks.push(A)}removeFrameCallback(A){this.frameCallbacks=this.frameCallbacks.filter((q)=>q!==A)}clearFrameCallbacks(){this.frameCallbacks=[]}requestLive(){if(this.liveRequestCounter++,this._controlState==="idle"&&this.liveRequestCounter>0)this._controlState="auto_started",this.internalStart()}dropLive(){if(this.liveRequestCounter=Math.max(0,this.liveRequestCounter-1),this._controlState==="auto_started"&&this.liveRequestCounter===0)this._controlState="idle",this.internalPause()}start(){this._controlState="explicit_started",this.internalStart()}auto(){this._controlState=this._isRunning?"auto_started":"idle"}internalStart(){if(!this._isRunning&&!this._isDestroyed){if(this._isRunning=!0,this.memorySnapshotInterval>0)this.startMemorySnapshotTimer();this.startRenderLoop()}}pause(){this._controlState="explicit_paused",this.internalPause()}suspend(){if(this._previousControlState=this._controlState,this._controlState="explicit_suspended",this.internalPause(),this._suspendedMouseEnabled=this._useMouse,this.disableMouse(),this.removeExitListeners(),this._stdinBuffer.clear(),this.stdin.removeListener("data",this.stdinListener),this.lib.suspendRenderer(this.rendererPtr),this.stdin.setRawMode)this.stdin.setRawMode(!1);this.stdin.pause()}resume(){if(this.stdin.setRawMode)this.stdin.setRawMode(!0);if(this.stdin.resume(),this.addExitListeners(),setImmediate(()=>{while(this.stdin.read()!==null);this.stdin.on("data",this.stdinListener)}),this.lib.resumeRenderer(this.rendererPtr),this._suspendedMouseEnabled)this.enableMouse();if(this.currentRenderBuffer.clear(this.backgroundColor),this._controlState=this._previousControlState,this._previousControlState==="auto_started"||this._previousControlState==="explicit_started")this.internalStart();else this.requestRender()}internalPause(){this._isRunning=!1}stop(){this._controlState="explicit_stopped",this.internalStop()}internalStop(){if(this.isRunning&&!this._isDestroyed){if(this._isRunning=!1,this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null;if(this.renderTimeout)clearTimeout(this.renderTimeout),this.renderTimeout=null;if(!this.rendering)this.resolveIdleIfNeeded()}}destroy(){if(this._isDestroyed)return;if(this._isDestroyed=!0,this._destroyPending=!0,this.rendering)return;this.finalizeDestroy()}finalizeDestroy(){if(this._destroyFinalized)return;if(this._destroyFinalized=!0,this._destroyPending=!1,process.removeListener("SIGWINCH",this.sigwinchHandler),process.removeListener("uncaughtException",this.handleError),process.removeListener("unhandledRejection",this.handleError),process.removeListener("warning",this.warningHandler),process.removeListener("beforeExit",this.exitHandler),Yq.removeListener("write",this.captureCallback),this.removeExitListeners(),this.resizeTimeoutId!==null)clearTimeout(this.resizeTimeoutId),this.resizeTimeoutId=null;if(this.capabilityTimeoutId!==null)clearTimeout(this.capabilityTimeoutId),this.capabilityTimeoutId=null;if(this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer);if(this._paletteDetector)this._paletteDetector.cleanup(),this._paletteDetector=null;if(this._paletteDetectionPromise=null,this._cachedPalette=null,this.emit("destroy"),this.renderTimeout)clearTimeout(this.renderTimeout),this.renderTimeout=null;this._isRunning=!1,this.waitingForPixelResolution=!1,this.setCapturedRenderable(void 0);try{this.root.destroyRecursively()}catch(A){console.error("Error destroying root renderable:",A instanceof Error?A.stack:String(A))}if(this._stdinBuffer.destroy(),this._console.destroy(),this.disableStdoutInterception(),this._splitHeight>0)this.flushStdoutCache(this._splitHeight,!0);if(this.stdin.setRawMode)this.stdin.setRawMode(!1);if(this.stdin.removeListener("data",this.stdinListener),this.lib.destroyRenderer(this.rendererPtr),bY.removeRenderer(this),this._onDestroy)try{this._onDestroy()}catch(A){console.error("Error in onDestroy callback:",A instanceof Error?A.stack:String(A))}this.resolveIdleIfNeeded()}startRenderLoop(){if(!this._isRunning)return;this.lastTime=Date.now(),this.frameCount=0,this.lastFpsTime=this.lastTime,this.currentFps=0,this.loop()}async loop(){if(this.rendering||this._isDestroyed)return;if(this.renderTimeout=null,this.rendering=!0,this.renderTimeout)clearTimeout(this.renderTimeout),this.renderTimeout=null;try{let A=Date.now(),g=A-this.lastTime;if(this.lastTime=A,this.frameCount++,A-this.lastFpsTime>=1000)this.currentFps=this.frameCount,this.frameCount=0,this.lastFpsTime=A;this.renderStats.frameCount++,this.renderStats.fps=this.currentFps;let E=performance.now(),F=Array.from(this.animationRequest.values());this.animationRequest.clear();let K=performance.now();for(let Y of F)Y(g),this.dropLive();let j=performance.now()-K,U=performance.now();for(let Y of this.frameCallbacks)try{await Y(g)}catch(M){console.error("Error in frame callback:",M)}let O=performance.now();this.renderStats.frameCallbackTime=O-U,this.root.render(this.nextRenderBuffer,g);for(let Y of this.postProcessFns)Y(this.nextRenderBuffer,g);if(this._console.renderToBuffer(this.nextRenderBuffer),!this._isDestroyed){if(this.renderNative(),this._useMouse&&this.lib.getHitGridDirty(this.rendererPtr))this.recheckHoverState();let Y=performance.now()-E;if(this.lib.updateStats(this.rendererPtr,Y,this.renderStats.fps,this.renderStats.frameCallbackTime),this.gatherStats)this.collectStatSample(Y);if(this._isRunning||this.immediateRerenderRequested){let M=this.immediateRerenderRequested?this.minTargetFrameTime:this.targetFrameTime,J=Math.max(1,M-Math.floor(Y));this.immediateRerenderRequested=!1,this.renderTimeout=setTimeout(()=>{this.renderTimeout=null,this.loop()},J)}else clearTimeout(this.renderTimeout),this.renderTimeout=null}}finally{if(this.rendering=!1,this._destroyPending)this.finalizeDestroy();this.resolveIdleIfNeeded()}}intermediateRender(){this.immediateRerenderRequested=!0,this.loop()}renderNative(){if(this.renderingNative)throw console.error("Rendering called concurrently"),Error("Rendering called concurrently");let A=!1;if(this._splitHeight>0)A=this.flushStdoutCache(this._splitHeight);this.renderingNative=!0,this.lib.render(this.rendererPtr,A),this.renderingNative=!1}collectStatSample(A){if(this.frameTimes.push(A),this.frameTimes.length>this.maxStatSamples)this.frameTimes.shift()}getStats(){let A=[...this.frameTimes],q=A.reduce((K,Z)=>K+Z,0),g=A.length?q/A.length:0,E=A.length?Math.min(...A):0,F=A.length?Math.max(...A):0;return{fps:this.renderStats.fps,frameCount:this.renderStats.frameCount,frameTimes:A,averageFrameTime:g,minFrameTime:E,maxFrameTime:F}}resetStats(){this.frameTimes=[],this.renderStats.frameCount=0}setGatherStats(A){if(this.gatherStats=A,!A)this.frameTimes=[]}getSelection(){return this.currentSelection}get hasSelection(){return!!this.currentSelection}getSelectionContainer(){return this.selectionContainers.length>0?this.selectionContainers[this.selectionContainers.length-1]:null}clearSelection(){if(this.currentSelection){for(let A of this.currentSelection.touchedRenderables)if(A.selectable&&!A.isDestroyed)A.onSelectionChanged(null);this.currentSelection=null}this.selectionContainers=[]}startSelection(A,q,g){if(!A.selectable)return;this.clearSelection(),this.selectionContainers.push(A.parent||this.root),this.currentSelection=new nj(A,{x:q,y:g},{x:q,y:g}),this.currentSelection.isStart=!0,this.notifySelectablesOfSelectionChange()}updateSelection(A,q,g){if(this.currentSelection){if(this.currentSelection.isStart=!1,this.currentSelection.focus={x:q,y:g},this.selectionContainers.length>0){let E=this.selectionContainers[this.selectionContainers.length-1];if(!A||!this.isWithinContainer(A,E)){let F=E.parent||this.root;this.selectionContainers.push(F)}else if(A&&this.selectionContainers.length>1){let F=this.selectionContainers.indexOf(A);if(F===-1){let K=A.parent||this.root;F=this.selectionContainers.indexOf(K)}if(F!==-1&&F<this.selectionContainers.length-1)this.selectionContainers=this.selectionContainers.slice(0,F+1)}}this.notifySelectablesOfSelectionChange()}}requestSelectionUpdate(){if(this.currentSelection?.isSelecting){let A=this._latestPointer,q=this.hitTest(A.x,A.y),g=kA.renderablesByNumber.get(q);this.updateSelection(g,A.x,A.y)}}isWithinContainer(A,q){let g=A;while(g){if(g===q)return!0;g=g.parent}return!1}finishSelection(){if(this.currentSelection)this.currentSelection.isSelecting=!1,this.emit("selection",this.currentSelection),this.notifySelectablesOfSelectionChange()}notifySelectablesOfSelectionChange(){let A=[],q=[],g=this.selectionContainers.length>0?this.selectionContainers[this.selectionContainers.length-1]:this.root;if(this.currentSelection){this.walkSelectableRenderables(g,this.currentSelection.bounds,A,q);for(let E of this.currentSelection.touchedRenderables)if(!q.includes(E)&&!E.isDestroyed)E.onSelectionChanged(null);this.currentSelection.updateSelectedRenderables(A),this.currentSelection.updateTouchedRenderables(q)}}walkSelectableRenderables(A,q,g,E){let F=ZU(q,A.getChildrenSortedByPrimaryAxis(),A.primaryAxis,0,0);for(let K of F){if(K.selectable){if(K.onSelectionChanged(this.currentSelection))g.push(K);E.push(K)}if(K.getChildrenCount()>0)this.walkSelectableRenderables(K,q,g,E)}}get paletteDetectionStatus(){if(this._cachedPalette)return"cached";if(this._paletteDetectionPromise)return"detecting";return"idle"}clearPaletteCache(){this._cachedPalette=null}async getPalette(A){if(this._controlState==="explicit_suspended")throw Error("Cannot detect palette while renderer is suspended");let q=A?.size??16;if(this._cachedPalette&&this._cachedPalette.palette.length!==q)this._cachedPalette=null;if(this._cachedPalette)return this._cachedPalette;if(this._paletteDetectionPromise)return this._paletteDetectionPromise;if(!this._paletteDetector){let g=this.capabilities?.terminal?.name?.toLowerCase()?.includes("tmux")&&this.capabilities?.terminal?.version?.localeCompare("3.6")<0;this._paletteDetector=jQ(this.stdin,this.stdout,this.writeOut.bind(this),g)}return this._paletteDetectionPromise=this._paletteDetector.detect(A).then((g)=>{return this._cachedPalette=g,this._paletteDetectionPromise=null,g}),this._paletteDetectionPromise}}import{EventEmitter as S9}from"events";class _U{lib;viewPtr;textBuffer;_destroyed=!1;constructor(A,q,g){this.lib=A,this.viewPtr=q,this.textBuffer=g}static create(A){let q=Jq(),g=q.createTextBufferView(A.ptr);return new _U(q,g,A)}guard(){if(this._destroyed)throw Error("TextBufferView is destroyed")}get ptr(){return this.guard(),this.viewPtr}setSelection(A,q,g,E){this.guard(),this.lib.textBufferViewSetSelection(this.viewPtr,A,q,g||null,E||null)}updateSelection(A,q,g){this.guard(),this.lib.textBufferViewUpdateSelection(this.viewPtr,A,q||null,g||null)}resetSelection(){this.guard(),this.lib.textBufferViewResetSelection(this.viewPtr)}getSelection(){return this.guard(),this.lib.textBufferViewGetSelection(this.viewPtr)}hasSelection(){return this.guard(),this.getSelection()!==null}setLocalSelection(A,q,g,E,F,K){return this.guard(),this.lib.textBufferViewSetLocalSelection(this.viewPtr,A,q,g,E,F||null,K||null)}updateLocalSelection(A,q,g,E,F,K){return this.guard(),this.lib.textBufferViewUpdateLocalSelection(this.viewPtr,A,q,g,E,F||null,K||null)}resetLocalSelection(){this.guard(),this.lib.textBufferViewResetLocalSelection(this.viewPtr)}setWrapWidth(A){this.guard(),this.lib.textBufferViewSetWrapWidth(this.viewPtr,A??0)}setWrapMode(A){this.guard(),this.lib.textBufferViewSetWrapMode(this.viewPtr,A)}setViewportSize(A,q){this.guard(),this.lib.textBufferViewSetViewportSize(this.viewPtr,A,q)}setViewport(A,q,g,E){this.guard(),this.lib.textBufferViewSetViewport(this.viewPtr,A,q,g,E)}get lineInfo(){return this.guard(),this.lib.textBufferViewGetLineInfo(this.viewPtr)}get logicalLineInfo(){return this.guard(),this.lib.textBufferViewGetLogicalLineInfo(this.viewPtr)}getSelectedText(){this.guard();let A=this.textBuffer.byteSize;if(A===0)return"";let q=this.lib.textBufferViewGetSelectedTextBytes(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}getPlainText(){this.guard();let A=this.textBuffer.byteSize;if(A===0)return"";let q=this.lib.textBufferViewGetPlainTextBytes(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}setTabIndicator(A){this.guard();let q=typeof A==="string"?A.codePointAt(0)??0:A;this.lib.textBufferViewSetTabIndicator(this.viewPtr,q)}setTabIndicatorColor(A){this.guard(),this.lib.textBufferViewSetTabIndicatorColor(this.viewPtr,A)}setTruncate(A){this.guard(),this.lib.textBufferViewSetTruncate(this.viewPtr,A)}measureForDimensions(A,q){return this.guard(),this.lib.textBufferViewMeasureForDimensions(this.viewPtr,A,q)}getVirtualLineCount(){return this.guard(),this.lib.textBufferViewGetVirtualLineCount(this.viewPtr)}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyTextBufferView(this.viewPtr)}}class lq extends S9{static registry=new Map;static nativeEventsSubscribed=!1;lib;bufferPtr;textBufferPtr;id;_destroyed=!1;_textBytes=[];_singleTextBytes=null;_singleTextMemId=null;_syntaxStyle;constructor(A,q){super();this.lib=A,this.bufferPtr=q,this.textBufferPtr=A.editBufferGetTextBuffer(q),this.id=A.editBufferGetId(q),lq.registry.set(this.id,this),lq.subscribeToNativeEvents(A)}static create(A){let q=Jq(),g=q.createEditBuffer(A);return new lq(q,g)}static subscribeToNativeEvents(A){if(lq.nativeEventsSubscribed)return;lq.nativeEventsSubscribed=!0,A.onAnyNativeEvent((q,g)=>{let E=new Uint16Array(g);if(q.startsWith("eb_")&&E.length>=1){let F=E[0],K=lq.registry.get(F);if(K){let Z=q.slice(3),j=g.slice(2);K.emit(Z,j)}}})}guard(){if(this._destroyed)throw Error("EditBuffer is destroyed")}get ptr(){return this.guard(),this.bufferPtr}setText(A){this.guard();let q=this.lib.encoder.encode(A);if(this._singleTextMemId!==null)this.lib.textBufferReplaceMemBuffer(this.textBufferPtr,this._singleTextMemId,q,!1);else this._singleTextMemId=this.lib.textBufferRegisterMemBuffer(this.textBufferPtr,q,!1);this._singleTextBytes=q,this.lib.editBufferSetTextFromMem(this.bufferPtr,this._singleTextMemId)}setTextOwned(A){this.guard();let q=this.lib.encoder.encode(A);this.lib.editBufferSetText(this.bufferPtr,q)}replaceText(A){this.guard();let q=this.lib.encoder.encode(A);this._textBytes.push(q);let g=this.lib.textBufferRegisterMemBuffer(this.textBufferPtr,q,!1);this.lib.editBufferReplaceTextFromMem(this.bufferPtr,g)}replaceTextOwned(A){this.guard();let q=this.lib.encoder.encode(A);this.lib.editBufferReplaceText(this.bufferPtr,q)}getLineCount(){return this.guard(),this.lib.textBufferGetLineCount(this.textBufferPtr)}getText(){this.guard();let A=1048576,q=this.lib.editBufferGetText(this.bufferPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}insertChar(A){this.guard(),this.lib.editBufferInsertChar(this.bufferPtr,A)}insertText(A){this.guard(),this.lib.editBufferInsertText(this.bufferPtr,A)}deleteChar(){this.guard(),this.lib.editBufferDeleteChar(this.bufferPtr)}deleteCharBackward(){this.guard(),this.lib.editBufferDeleteCharBackward(this.bufferPtr)}deleteRange(A,q,g,E){this.guard(),this.lib.editBufferDeleteRange(this.bufferPtr,A,q,g,E)}newLine(){this.guard(),this.lib.editBufferNewLine(this.bufferPtr)}deleteLine(){this.guard(),this.lib.editBufferDeleteLine(this.bufferPtr)}moveCursorLeft(){this.guard(),this.lib.editBufferMoveCursorLeft(this.bufferPtr)}moveCursorRight(){this.guard(),this.lib.editBufferMoveCursorRight(this.bufferPtr)}moveCursorUp(){this.guard(),this.lib.editBufferMoveCursorUp(this.bufferPtr)}moveCursorDown(){this.guard(),this.lib.editBufferMoveCursorDown(this.bufferPtr)}gotoLine(A){this.guard(),this.lib.editBufferGotoLine(this.bufferPtr,A)}setCursor(A,q){this.guard(),this.lib.editBufferSetCursor(this.bufferPtr,A,q)}setCursorToLineCol(A,q){this.guard(),this.lib.editBufferSetCursorToLineCol(this.bufferPtr,A,q)}setCursorByOffset(A){this.guard(),this.lib.editBufferSetCursorByOffset(this.bufferPtr,A)}getCursorPosition(){return this.guard(),this.lib.editBufferGetCursorPosition(this.bufferPtr)}getNextWordBoundary(){this.guard();let A=this.lib.editBufferGetNextWordBoundary(this.bufferPtr);return{row:A.row,col:A.col,offset:A.offset}}getPrevWordBoundary(){this.guard();let A=this.lib.editBufferGetPrevWordBoundary(this.bufferPtr);return{row:A.row,col:A.col,offset:A.offset}}getEOL(){this.guard();let A=this.lib.editBufferGetEOL(this.bufferPtr);return{row:A.row,col:A.col,offset:A.offset}}offsetToPosition(A){this.guard();let q=this.lib.editBufferOffsetToPosition(this.bufferPtr,A);if(!q)return null;return{row:q.row,col:q.col}}positionToOffset(A,q){return this.guard(),this.lib.editBufferPositionToOffset(this.bufferPtr,A,q)}getLineStartOffset(A){return this.guard(),this.lib.editBufferGetLineStartOffset(this.bufferPtr,A)}getTextRange(A,q){if(this.guard(),A>=q)return"";let g=1048576,E=this.lib.editBufferGetTextRange(this.bufferPtr,A,q,g);if(!E)return"";return this.lib.decoder.decode(E)}getTextRangeByCoords(A,q,g,E){this.guard();let F=1048576,K=this.lib.editBufferGetTextRangeByCoords(this.bufferPtr,A,q,g,E,F);if(!K)return"";return this.lib.decoder.decode(K)}debugLogRope(){this.guard(),this.lib.editBufferDebugLogRope(this.bufferPtr)}undo(){this.guard();let A=256,q=this.lib.editBufferUndo(this.bufferPtr,A);if(!q)return null;return this.lib.decoder.decode(q)}redo(){this.guard();let A=256,q=this.lib.editBufferRedo(this.bufferPtr,A);if(!q)return null;return this.lib.decoder.decode(q)}canUndo(){return this.guard(),this.lib.editBufferCanUndo(this.bufferPtr)}canRedo(){return this.guard(),this.lib.editBufferCanRedo(this.bufferPtr)}clearHistory(){this.guard(),this.lib.editBufferClearHistory(this.bufferPtr)}setDefaultFg(A){this.guard(),this.lib.textBufferSetDefaultFg(this.textBufferPtr,A)}setDefaultBg(A){this.guard(),this.lib.textBufferSetDefaultBg(this.textBufferPtr,A)}setDefaultAttributes(A){this.guard(),this.lib.textBufferSetDefaultAttributes(this.textBufferPtr,A)}resetDefaults(){this.guard(),this.lib.textBufferResetDefaults(this.textBufferPtr)}setSyntaxStyle(A){this.guard(),this._syntaxStyle=A??void 0,this.lib.textBufferSetSyntaxStyle(this.textBufferPtr,A?.ptr??null)}getSyntaxStyle(){return this.guard(),this._syntaxStyle??null}addHighlight(A,q){this.guard(),this.lib.textBufferAddHighlight(this.textBufferPtr,A,q)}addHighlightByCharRange(A){this.guard(),this.lib.textBufferAddHighlightByCharRange(this.textBufferPtr,A)}removeHighlightsByRef(A){this.guard(),this.lib.textBufferRemoveHighlightsByRef(this.textBufferPtr,A)}clearLineHighlights(A){this.guard(),this.lib.textBufferClearLineHighlights(this.textBufferPtr,A)}clearAllHighlights(){this.guard(),this.lib.textBufferClearAllHighlights(this.textBufferPtr)}getLineHighlights(A){return this.guard(),this.lib.textBufferGetLineHighlights(this.textBufferPtr,A)}clear(){this.guard(),this.lib.editBufferClear(this.bufferPtr)}destroy(){if(this._destroyed)return;this._destroyed=!0,lq.registry.delete(this.id),this.lib.destroyEditBuffer(this.bufferPtr)}}class $U{lib;viewPtr;editBuffer;_destroyed=!1;_extmarksController;_textBufferViewPtr;constructor(A,q,g){this.lib=A,this.viewPtr=q,this.editBuffer=g}static create(A,q,g){let E=Jq(),F=E.createEditorView(A.ptr,q,g);return new $U(E,F,A)}guard(){if(this._destroyed)throw Error("EditorView is destroyed")}get ptr(){return this.guard(),this.viewPtr}setViewportSize(A,q){this.guard(),this.lib.editorViewSetViewportSize(this.viewPtr,A,q)}setViewport(A,q,g,E,F=!0){this.guard(),this.lib.editorViewSetViewport(this.viewPtr,A,q,g,E,F)}getViewport(){return this.guard(),this.lib.editorViewGetViewport(this.viewPtr)}setScrollMargin(A){this.guard(),this.lib.editorViewSetScrollMargin(this.viewPtr,A)}setWrapMode(A){this.guard(),this.lib.editorViewSetWrapMode(this.viewPtr,A)}getVirtualLineCount(){return this.guard(),this.lib.editorViewGetVirtualLineCount(this.viewPtr)}getTotalVirtualLineCount(){return this.guard(),this.lib.editorViewGetTotalVirtualLineCount(this.viewPtr)}setSelection(A,q,g,E){this.guard(),this.lib.editorViewSetSelection(this.viewPtr,A,q,g||null,E||null)}updateSelection(A,q,g){this.guard(),this.lib.editorViewUpdateSelection(this.viewPtr,A,q||null,g||null)}resetSelection(){this.guard(),this.lib.editorViewResetSelection(this.viewPtr)}getSelection(){return this.guard(),this.lib.editorViewGetSelection(this.viewPtr)}hasSelection(){return this.guard(),this.getSelection()!==null}setLocalSelection(A,q,g,E,F,K,Z,j){return this.guard(),this.lib.editorViewSetLocalSelection(this.viewPtr,A,q,g,E,F||null,K||null,Z??!1,j??!1)}updateLocalSelection(A,q,g,E,F,K,Z,j){return this.guard(),this.lib.editorViewUpdateLocalSelection(this.viewPtr,A,q,g,E,F||null,K||null,Z??!1,j??!1)}resetLocalSelection(){this.guard(),this.lib.editorViewResetLocalSelection(this.viewPtr)}getSelectedText(){this.guard();let A=1048576,q=this.lib.editorViewGetSelectedTextBytes(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}getCursor(){return this.guard(),this.lib.editorViewGetCursor(this.viewPtr)}getText(){this.guard();let A=1048576,q=this.lib.editorViewGetText(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}getVisualCursor(){return this.guard(),this.lib.editorViewGetVisualCursor(this.viewPtr)}moveUpVisual(){this.guard(),this.lib.editorViewMoveUpVisual(this.viewPtr)}moveDownVisual(){this.guard(),this.lib.editorViewMoveDownVisual(this.viewPtr)}deleteSelectedText(){this.guard(),this.lib.editorViewDeleteSelectedText(this.viewPtr)}setCursorByOffset(A){this.guard(),this.lib.editorViewSetCursorByOffset(this.viewPtr,A)}getNextWordBoundary(){return this.guard(),this.lib.editorViewGetNextWordBoundary(this.viewPtr)}getPrevWordBoundary(){return this.guard(),this.lib.editorViewGetPrevWordBoundary(this.viewPtr)}getEOL(){return this.guard(),this.lib.editorViewGetEOL(this.viewPtr)}getVisualSOL(){return this.guard(),this.lib.editorViewGetVisualSOL(this.viewPtr)}getVisualEOL(){return this.guard(),this.lib.editorViewGetVisualEOL(this.viewPtr)}getLineInfo(){return this.guard(),this.lib.editorViewGetLineInfo(this.viewPtr)}getLogicalLineInfo(){return this.guard(),this.lib.editorViewGetLogicalLineInfo(this.viewPtr)}get extmarks(){if(!this._extmarksController)this._extmarksController=ZQ(this.editBuffer,this);return this._extmarksController}setPlaceholderStyledText(A){this.guard(),this.lib.editorViewSetPlaceholderStyledText(this.viewPtr,A)}setTabIndicator(A){this.guard();let q=typeof A==="string"?A.codePointAt(0)??0:A;this.lib.editorViewSetTabIndicator(this.viewPtr,q)}setTabIndicatorColor(A){this.guard(),this.lib.editorViewSetTabIndicatorColor(this.viewPtr,A)}measureForDimensions(A,q){if(this.guard(),!this._textBufferViewPtr)this._textBufferViewPtr=this.lib.editorViewGetTextBufferView(this.viewPtr);return this.lib.textBufferViewMeasureForDimensions(this._textBufferViewPtr,A,q)}destroy(){if(this._destroyed)return;if(this._extmarksController)this._extmarksController.destroy(),this._extmarksController=void 0;this._destroyed=!0,this.lib.destroyEditorView(this.viewPtr)}}function h9(A){let q={};for(let g of A){let E={};if(g.style.foreground)E.fg=d(g.style.foreground);if(g.style.background)E.bg=d(g.style.background);if(g.style.bold!==void 0)E.bold=g.style.bold;if(g.style.italic!==void 0)E.italic=g.style.italic;if(g.style.underline!==void 0)E.underline=g.style.underline;if(g.style.dim!==void 0)E.dim=g.style.dim;for(let F of g.scope)q[F]=E}return q}class BE{lib;stylePtr;_destroyed=!1;nameCache=new Map;styleDefs=new Map;mergedCache=new Map;constructor(A,q){this.lib=A,this.stylePtr=q}static create(){let A=Jq(),q=A.createSyntaxStyle();return new BE(A,q)}static fromTheme(A){let q=BE.create(),g=h9(A);for(let[E,F]of Object.entries(g))q.registerStyle(E,F);return q}static fromStyles(A){let q=BE.create();for(let[g,E]of Object.entries(A))q.registerStyle(g,E);return q}guard(){if(this._destroyed)throw Error("NativeSyntaxStyle is destroyed")}registerStyle(A,q){this.guard();let g=WE({bold:q.bold,italic:q.italic,underline:q.underline,dim:q.dim}),E=this.lib.syntaxStyleRegister(this.stylePtr,A,q.fg||null,q.bg||null,g);return this.nameCache.set(A,E),this.styleDefs.set(A,q),E}resolveStyleId(A){this.guard();let q=this.nameCache.get(A);if(q!==void 0)return q;let g=this.lib.syntaxStyleResolveByName(this.stylePtr,A);if(g!==null)this.nameCache.set(A,g);return g}getStyleId(A){this.guard();let q=this.resolveStyleId(A);if(q!==null)return q;if(A.includes(".")){let g=A.split(".")[0];return this.resolveStyleId(g)}return null}get ptr(){return this.guard(),this.stylePtr}getStyleCount(){return this.guard(),this.lib.syntaxStyleGetStyleCount(this.stylePtr)}clearNameCache(){this.nameCache.clear()}getStyle(A){if(this.guard(),Object.prototype.hasOwnProperty.call(this.styleDefs,A))return;let q=this.styleDefs.get(A);if(q)return q;if(A.includes(".")){let g=A.split(".")[0];if(Object.prototype.hasOwnProperty.call(this.styleDefs,g))return;return this.styleDefs.get(g)}return}mergeStyles(...A){this.guard();let q=A.join(":"),g=this.mergedCache.get(q);if(g)return g;let E={};for(let Z of A){let j=this.getStyle(Z);if(!j)continue;if(j.fg)E.fg=j.fg;if(j.bg)E.bg=j.bg;if(j.bold!==void 0)E.bold=j.bold;if(j.italic!==void 0)E.italic=j.italic;if(j.underline!==void 0)E.underline=j.underline;if(j.dim!==void 0)E.dim=j.dim}let F=WE({bold:E.bold,italic:E.italic,underline:E.underline,dim:E.dim}),K={fg:E.fg,bg:E.bg,attributes:F};return this.mergedCache.set(q,K),K}clearCache(){this.guard(),this.mergedCache.clear()}getCacheSize(){return this.guard(),this.mergedCache.size}getAllStyles(){return this.guard(),new Map(this.styleDefs)}getRegisteredNames(){return this.guard(),Array.from(this.styleDefs.keys())}destroy(){if(this._destroyed)return;this._destroyed=!0,this.nameCache.clear(),this.styleDefs.clear(),this.mergedCache.clear(),this.lib.destroySyntaxStyle(this.stylePtr)}}class DQ{timelines=new Set;renderer=null;frameCallback=null;isLive=!1;defaults={frameRate:60};attach(A){if(this.renderer)this.detach();this.renderer=A,this.frameCallback=async(q)=>{this.update(q)},A.setFrameCallback(this.frameCallback)}detach(){if(this.renderer&&this.frameCallback){if(this.renderer.removeFrameCallback(this.frameCallback),this.isLive)this.renderer.dropLive(),this.isLive=!1}this.renderer=null,this.frameCallback=null}updateLiveState(){if(!this.renderer)return;let A=Array.from(this.timelines).some((q)=>!q.synced&&q.isPlaying&&!q.isComplete);if(A&&!this.isLive)this.renderer.requestLive(),this.isLive=!0;else if(!A&&this.isLive)this.renderer.dropLive(),this.isLive=!1}onTimelineStateChange=(A)=>{this.updateLiveState()};register(A){if(!this.timelines.has(A))this.timelines.add(A),A.addStateChangeListener(this.onTimelineStateChange),this.updateLiveState()}unregister(A){if(this.timelines.has(A))this.timelines.delete(A),A.removeStateChangeListener(this.onTimelineStateChange),this.updateLiveState()}clear(){for(let A of this.timelines)A.removeStateChangeListener(this.onTimelineStateChange);this.timelines.clear(),this.updateLiveState()}update(A){for(let q of this.timelines)if(!q.synced)q.update(A)}}var KL=new DQ;function h6(A){if(A===void 0)return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return S6(A)}class s extends kA{_backgroundColor;_border;_borderStyle;_borderColor;_focusedBorderColor;_customBorderCharsObj;_customBorderChars;borderSides;shouldFill;_title;_titleAlignment;_defaultOptions={backgroundColor:"transparent",borderStyle:"single",border:!1,borderColor:"#FFFFFF",shouldFill:!0,titleAlignment:"left",focusedBorderColor:"#00AAFF"};constructor(A,q){super(A,q);if(this._backgroundColor=d(q.backgroundColor||this._defaultOptions.backgroundColor),this._border=q.border??this._defaultOptions.border,!q.border&&(q.borderStyle||q.borderColor||q.focusedBorderColor||q.customBorderChars))this._border=!0;if(this._borderStyle=iK(q.borderStyle,this._defaultOptions.borderStyle),this._borderColor=d(q.borderColor||this._defaultOptions.borderColor),this._focusedBorderColor=d(q.focusedBorderColor||this._defaultOptions.focusedBorderColor),this._customBorderCharsObj=q.customBorderChars,this._customBorderChars=this._customBorderCharsObj?bg(this._customBorderCharsObj):void 0,this.borderSides=tK(this._border),this.shouldFill=q.shouldFill??this._defaultOptions.shouldFill,this._title=q.title,this._titleAlignment=q.titleAlignment||this._defaultOptions.titleAlignment,this.applyYogaBorders(),q.gap!==void 0||q.rowGap!==void 0||q.columnGap!==void 0)this.applyYogaGap(q)}initializeBorder(){if(this._border===!1)this._border=!0,this.borderSides=tK(this._border),this.applyYogaBorders()}get customBorderChars(){return this._customBorderCharsObj}set customBorderChars(A){this._customBorderCharsObj=A,this._customBorderChars=A?bg(A):void 0,this.requestRender()}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){let q=d(A??this._defaultOptions.backgroundColor);if(this._backgroundColor!==q)this._backgroundColor=q,this.requestRender()}get border(){return this._border}set border(A){if(this._border!==A)this._border=A,this.borderSides=tK(A),this.applyYogaBorders(),this.requestRender()}get borderStyle(){return this._borderStyle}set borderStyle(A){let q=iK(A,this._defaultOptions.borderStyle);if(this._borderStyle!==q||!this._border)this._borderStyle=q,this._customBorderChars=void 0,this.initializeBorder(),this.requestRender()}get borderColor(){return this._borderColor}set borderColor(A){let q=d(A??this._defaultOptions.borderColor);if(this._borderColor!==q)this._borderColor=q,this.initializeBorder(),this.requestRender()}get focusedBorderColor(){return this._focusedBorderColor}set focusedBorderColor(A){let q=d(A??this._defaultOptions.focusedBorderColor);if(this._focusedBorderColor!==q){if(this._focusedBorderColor=q,this.initializeBorder(),this._focused)this.requestRender()}}get title(){return this._title}set title(A){if(this._title!==A)this._title=A,this.requestRender()}get titleAlignment(){return this._titleAlignment}set titleAlignment(A){if(this._titleAlignment!==A)this._titleAlignment=A,this.requestRender()}renderSelf(A){let q=this._focused?this._focusedBorderColor:this._borderColor;A.drawBox({x:this.x,y:this.y,width:this.width,height:this.height,borderStyle:this._borderStyle,customBorderChars:this._customBorderChars,border:this._border,borderColor:q,backgroundColor:this._backgroundColor,shouldFill:this.shouldFill,title:this._title,titleAlignment:this._titleAlignment})}getScissorRect(){let A=super.getScissorRect();if(!this.borderSides.top&&!this.borderSides.right&&!this.borderSides.bottom&&!this.borderSides.left)return A;let q=this.borderSides.left?1:0,g=this.borderSides.right?1:0,E=this.borderSides.top?1:0,F=this.borderSides.bottom?1:0;return{x:A.x+q,y:A.y+E,width:Math.max(0,A.width-q-g),height:Math.max(0,A.height-E-F)}}applyYogaBorders(){let A=this.yogaNode;A.setBorder(t.Left,this.borderSides.left?1:0),A.setBorder(t.Right,this.borderSides.right?1:0),A.setBorder(t.Top,this.borderSides.top?1:0),A.setBorder(t.Bottom,this.borderSides.bottom?1:0),this.requestRender()}applyYogaGap(A){let q=this.yogaNode;if(h6(A.gap))q.setGap(Oq.All,A.gap);if(h6(A.rowGap))q.setGap(Oq.Row,A.rowGap);if(h6(A.columnGap))q.setGap(Oq.Column,A.columnGap)}set gap(A){if(h6(A))this.yogaNode.setGap(Oq.All,A),this.requestRender()}set rowGap(A){if(h6(A))this.yogaNode.setGap(Oq.Row,A),this.requestRender()}set columnGap(A){if(h6(A))this.yogaNode.setGap(Oq.Column,A),this.requestRender()}}class yQ extends kA{selectable=!0;_defaultFg;_defaultBg;_defaultAttributes;_selectionBg;_selectionFg;_wrapMode="word";lastLocalSelection=null;_tabIndicator;_tabIndicatorColor;_scrollX=0;_scrollY=0;_truncate=!1;textBuffer;textBufferView;_defaultOptions={fg:QA.fromValues(1,1,1,1),bg:QA.fromValues(0,0,0,0),selectionBg:void 0,selectionFg:void 0,selectable:!0,attributes:0,wrapMode:"word",tabIndicator:void 0,tabIndicatorColor:void 0,truncate:!1};constructor(A,q){super(A,q);this._defaultFg=d(q.fg??this._defaultOptions.fg),this._defaultBg=d(q.bg??this._defaultOptions.bg),this._defaultAttributes=q.attributes??this._defaultOptions.attributes,this._selectionBg=q.selectionBg?d(q.selectionBg):this._defaultOptions.selectionBg,this._selectionFg=q.selectionFg?d(q.selectionFg):this._defaultOptions.selectionFg,this.selectable=q.selectable??this._defaultOptions.selectable,this._wrapMode=q.wrapMode??this._defaultOptions.wrapMode,this._tabIndicator=q.tabIndicator??this._defaultOptions.tabIndicator,this._tabIndicatorColor=q.tabIndicatorColor?d(q.tabIndicatorColor):this._defaultOptions.tabIndicatorColor,this._truncate=q.truncate??this._defaultOptions.truncate,this.textBuffer=nK.create(this._ctx.widthMethod),this.textBufferView=_U.create(this.textBuffer);let g=BE.create();if(this.textBuffer.setSyntaxStyle(g),this.textBufferView.setWrapMode(this._wrapMode),this.setupMeasureFunc(),this.textBuffer.setDefaultFg(this._defaultFg),this.textBuffer.setDefaultBg(this._defaultBg),this.textBuffer.setDefaultAttributes(this._defaultAttributes),this._tabIndicator!==void 0)this.textBufferView.setTabIndicator(this._tabIndicator);if(this._tabIndicatorColor!==void 0)this.textBufferView.setTabIndicatorColor(this._tabIndicatorColor);if(this._wrapMode!=="none"&&this.width>0)this.textBufferView.setWrapWidth(this.width);if(this.width>0&&this.height>0)this.textBufferView.setViewport(this._scrollX,this._scrollY,this.width,this.height);this.textBufferView.setTruncate(this._truncate),this.updateTextInfo()}onMouseEvent(A){if(A.type==="scroll")this.handleScroll(A)}handleScroll(A){if(!A.scroll)return;let{direction:q,delta:g}=A.scroll;if(q==="up")this.scrollY-=g;else if(q==="down")this.scrollY+=g;if(this._wrapMode==="none"){if(q==="left")this.scrollX-=g;else if(q==="right")this.scrollX+=g}}get lineInfo(){return this.textBufferView.logicalLineInfo}get lineCount(){return this.textBuffer.getLineCount()}get virtualLineCount(){return this.textBufferView.getVirtualLineCount()}get scrollY(){return this._scrollY}set scrollY(A){let q=Math.max(0,this.scrollHeight-this.height),g=Math.max(0,Math.min(A,q));if(this._scrollY!==g)this._scrollY=g,this.updateViewportOffset(),this.requestRender()}get scrollX(){return this._scrollX}set scrollX(A){let q=Math.max(0,this.scrollWidth-this.width),g=Math.max(0,Math.min(A,q));if(this._scrollX!==g)this._scrollX=g,this.updateViewportOffset(),this.requestRender()}get scrollWidth(){return this.lineInfo.maxLineWidth}get scrollHeight(){return this.lineInfo.lineStarts.length}get maxScrollY(){return Math.max(0,this.scrollHeight-this.height)}get maxScrollX(){return Math.max(0,this.scrollWidth-this.width)}updateViewportOffset(){if(this.width>0&&this.height>0)this.textBufferView.setViewport(this._scrollX,this._scrollY,this.width,this.height)}get plainText(){return this.textBuffer.getPlainText()}get textLength(){return this.textBuffer.length}get fg(){return this._defaultFg}set fg(A){let q=d(A??this._defaultOptions.fg);if(this._defaultFg!==q)this._defaultFg=q,this.textBuffer.setDefaultFg(this._defaultFg),this.onFgChanged(q),this.requestRender()}get selectionBg(){return this._selectionBg}set selectionBg(A){let q=A?d(A):this._defaultOptions.selectionBg;if(this._selectionBg!==q){if(this._selectionBg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get selectionFg(){return this._selectionFg}set selectionFg(A){let q=A?d(A):this._defaultOptions.selectionFg;if(this._selectionFg!==q){if(this._selectionFg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get bg(){return this._defaultBg}set bg(A){let q=d(A??this._defaultOptions.bg);if(this._defaultBg!==q)this._defaultBg=q,this.textBuffer.setDefaultBg(this._defaultBg),this.onBgChanged(q),this.requestRender()}get attributes(){return this._defaultAttributes}set attributes(A){if(this._defaultAttributes!==A)this._defaultAttributes=A,this.textBuffer.setDefaultAttributes(this._defaultAttributes),this.onAttributesChanged(A),this.requestRender()}get wrapMode(){return this._wrapMode}set wrapMode(A){if(this._wrapMode!==A){if(this._wrapMode=A,this.textBufferView.setWrapMode(this._wrapMode),A!=="none"&&this.width>0)this.textBufferView.setWrapWidth(this.width);this.yogaNode.markDirty(),this.requestRender()}}get tabIndicator(){return this._tabIndicator}set tabIndicator(A){if(this._tabIndicator!==A){if(this._tabIndicator=A,A!==void 0)this.textBufferView.setTabIndicator(A);this.requestRender()}}get tabIndicatorColor(){return this._tabIndicatorColor}set tabIndicatorColor(A){let q=A?d(A):void 0;if(this._tabIndicatorColor!==q){if(this._tabIndicatorColor=q,q!==void 0)this.textBufferView.setTabIndicatorColor(q);this.requestRender()}}get truncate(){return this._truncate}set truncate(A){if(this._truncate!==A)this._truncate=A,this.textBufferView.setTruncate(A),this.requestRender()}onResize(A,q){this.textBufferView.setViewport(this._scrollX,this._scrollY,A,q),this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change")}refreshLocalSelection(){if(this.lastLocalSelection)return this.updateLocalSelection(this.lastLocalSelection);return!1}updateLocalSelection(A){if(!A?.isActive)return this.textBufferView.resetLocalSelection(),!0;return this.textBufferView.setLocalSelection(A.anchorX,A.anchorY,A.focusX,A.focusY,this._selectionBg,this._selectionFg)}updateTextInfo(){if(this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change")}setupMeasureFunc(){let A=(q,g,E,F)=>{let K;if(g===cq.Undefined||isNaN(q))K=0;else K=q;let Z=isNaN(E)?1:E,j=this.textBufferView.measureForDimensions(Math.floor(K),Math.floor(Z)),U=j?Math.max(1,j.maxWidth):1,O=j?Math.max(1,j.lineCount):1;if(g===cq.AtMost&&this._positionType!=="absolute")return{width:Math.min(K,U),height:Math.min(Z,O)};return{width:U,height:O}};this.yogaNode.setMeasureFunc(A)}shouldStartSelection(A,q){if(!this.selectable)return!1;let g=A-this.x,E=q-this.y;return g>=0&&g<this.width&&E>=0&&E<this.height}onSelectionChanged(A){let q=rj(A,this.x,this.y);this.lastLocalSelection=q;let g;if(!q?.isActive)this.textBufferView.resetLocalSelection(),g=!0;else if(A?.isStart)g=this.textBufferView.setLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg);else g=this.textBufferView.updateLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg);if(g)this.requestRender();return this.hasSelection()}getSelectedText(){return this.textBufferView.getSelectedText()}hasSelection(){return this.textBufferView.hasSelection()}getSelection(){return this.textBufferView.getSelection()}render(A,q){if(!this.visible)return;if(this.markClean(),this._ctx.addToHitGrid(this.x,this.y,this.width,this.height,this.num),this.renderSelf(A),this.buffered&&this.frameBuffer)A.drawFrameBuffer(this.x,this.y,this.frameBuffer)}renderSelf(A){if(this.textBuffer.ptr)A.drawTextBuffer(this.textBufferView,this.x,this.y)}destroy(){this.textBufferView.destroy(),this.textBuffer.destroy(),super.destroy()}onFgChanged(A){}onBgChanged(A){}onAttributesChanged(A){}}var bQ=Symbol.for("@opentui/core/TextNodeRenderable");function eK(A){return!!A?.[bQ]}function IQ(A){return A.chunks.map((q)=>{let g=new CE({fg:q.fg,bg:q.bg,attributes:q.attributes,link:q.link});return g.add(q.text),g})}class CE extends aE{[bQ]=!0;_fg;_bg;_attributes;_link;_children=[];parent=null;constructor(A){super(A);this._fg=A.fg?d(A.fg):void 0,this._bg=A.bg?d(A.bg):void 0,this._attributes=A.attributes??0,this._link=A.link}get children(){return this._children}set children(A){this._children=A,this.requestRender()}requestRender(){this.markDirty(),this.parent?.requestRender()}add(A,q){if(typeof A==="string"){if(q!==void 0)return this._children.splice(q,0,A),this.requestRender(),q;let g=this._children.length;return this._children.push(A),this.requestRender(),g}if(eK(A)){if(q!==void 0)return this._children.splice(q,0,A),A.parent=this,this.requestRender(),q;let g=this._children.length;return this._children.push(A),A.parent=this,this.requestRender(),g}if(nY(A)){let g=IQ(A);if(q!==void 0)return this._children.splice(q,0,...g),g.forEach((F)=>F.parent=this),this.requestRender(),q;let E=this._children.length;return this._children.push(...g),g.forEach((F)=>F.parent=this),this.requestRender(),E}throw Error("TextNodeRenderable only accepts strings, TextNodeRenderable instances, or StyledText instances")}replace(A,q){if(this._children[q]=A,typeof A!=="string")A.parent=this;this.requestRender()}insertBefore(A,q){if(!q||!eK(q))throw Error("Anchor must be a TextNodeRenderable");let g=this._children.indexOf(q);if(g===-1)throw Error("Anchor node not found in children");if(typeof A==="string")this._children.splice(g,0,A);else if(eK(A))this._children.splice(g,0,A),A.parent=this;else if(A instanceof IE){let E=IQ(A);this._children.splice(g,0,...E),E.forEach((F)=>F.parent=this)}else throw Error("Child must be a string, TextNodeRenderable, or StyledText instance");return this.requestRender(),this}remove(A){let q=this.getRenderableIndex(A);if(q===-1)throw Error("Child not found in children");let g=this._children[q];return this._children.splice(q,1),g.parent=null,this.requestRender(),this}clear(){this._children=[],this.requestRender()}mergeStyles(A){return{fg:this._fg??A.fg,bg:this._bg??A.bg,attributes:this._attributes|A.attributes,link:this._link??A.link}}gatherWithInheritedStyle(A={fg:void 0,bg:void 0,attributes:0}){let q=this.mergeStyles(A),g=[];for(let E of this._children)if(typeof E==="string")g.push({__isChunk:!0,text:E,fg:q.fg,bg:q.bg,attributes:q.attributes,link:q.link});else{let F=E.gatherWithInheritedStyle(q);g.push(...F)}return this.markClean(),g}static fromString(A,q={}){let g=new CE(q);return g.add(A),g}static fromNodes(A,q={}){let g=new CE(q);for(let E of A)g.add(E);return g}toChunks(A={fg:void 0,bg:void 0,attributes:0}){return this.gatherWithInheritedStyle(A)}getChildren(){return this._children.filter((A)=>typeof A!=="string")}getChildrenCount(){return this._children.length}getRenderable(A){return this._children.find((q)=>typeof q!=="string"&&q.id===A)}getRenderableIndex(A){return this._children.findIndex((q)=>eK(q)&&q.id===A)}get fg(){return this._fg}set fg(A){if(!A){this._fg=void 0,this.requestRender();return}this._fg=d(A),this.requestRender()}set bg(A){if(!A){this._bg=void 0,this.requestRender();return}this._bg=d(A),this.requestRender()}get bg(){return this._bg}set attributes(A){this._attributes=A,this.requestRender()}get attributes(){return this._attributes}set link(A){this._link=A,this.requestRender()}get link(){return this._link}findDescendantById(A){return}}class vQ extends CE{ctx;textParent;constructor(A,q,g){super(q);this.ctx=A,this.textParent=g}requestRender(){this.markDirty(),this.ctx.requestRender()}}class iq{diff(A,q,g={}){let E;if(typeof g==="function")E=g,g={};else if("callback"in g)E=g.callback;let F=this.castInput(A,g),K=this.castInput(q,g),Z=this.removeEmpty(this.tokenize(F,g)),j=this.removeEmpty(this.tokenize(K,g));return this.diffWithOptionsObj(Z,j,g,E)}diffWithOptionsObj(A,q,g,E){var F;let K=(V)=>{if(V=this.postProcess(V,g),E){setTimeout(function(){E(V)},0);return}else return V},Z=q.length,j=A.length,U=1,O=Z+j;if(g.maxEditLength!=null)O=Math.min(O,g.maxEditLength);let Y=(F=g.timeout)!==null&&F!==void 0?F:1/0,M=Date.now()+Y,J=[{oldPos:-1,lastComponent:void 0}],$=this.extractCommon(J[0],q,A,0,g);if(J[0].oldPos+1>=j&&$+1>=Z)return K(this.buildValues(J[0].lastComponent,q,A));let _=-1/0,T=1/0,x=()=>{for(let V=Math.max(_,-U);V<=Math.min(T,U);V+=2){let a,k=J[V-1],C=J[V+1];if(k)J[V-1]=void 0;let u=!1;if(C){let R=C.oldPos-V;u=C&&0<=R&&R<Z}let c=k&&k.oldPos+1<j;if(!u&&!c){J[V]=void 0;continue}if(!c||u&&k.oldPos<C.oldPos)a=this.addToPath(C,!0,!1,0,g);else a=this.addToPath(k,!1,!0,1,g);if($=this.extractCommon(a,q,A,V,g),a.oldPos+1>=j&&$+1>=Z)return K(this.buildValues(a.lastComponent,q,A))||!0;else{if(J[V]=a,a.oldPos+1>=j)T=Math.min(T,V-1);if($+1>=Z)_=Math.max(_,V+1)}}U++};if(E)(function V(){setTimeout(function(){if(U>O||Date.now()>M)return E(void 0);if(!x())V()},0)})();else while(U<=O&&Date.now()<=M){let V=x();if(V)return V}}addToPath(A,q,g,E,F){let K=A.lastComponent;if(K&&!F.oneChangePerToken&&K.added===q&&K.removed===g)return{oldPos:A.oldPos+E,lastComponent:{count:K.count+1,added:q,removed:g,previousComponent:K.previousComponent}};else return{oldPos:A.oldPos+E,lastComponent:{count:1,added:q,removed:g,previousComponent:K}}}extractCommon(A,q,g,E,F){let K=q.length,Z=g.length,j=A.oldPos,U=j-E,O=0;while(U+1<K&&j+1<Z&&this.equals(g[j+1],q[U+1],F))if(U++,j++,O++,F.oneChangePerToken)A.lastComponent={count:1,previousComponent:A.lastComponent,added:!1,removed:!1};if(O&&!F.oneChangePerToken)A.lastComponent={count:O,previousComponent:A.lastComponent,added:!1,removed:!1};return A.oldPos=j,U}equals(A,q,g){if(g.comparator)return g.comparator(A,q);else return A===q||!!g.ignoreCase&&A.toLowerCase()===q.toLowerCase()}removeEmpty(A){let q=[];for(let g=0;g<A.length;g++)if(A[g])q.push(A[g]);return q}castInput(A,q){return A}tokenize(A,q){return Array.from(A)}join(A){return A.join("")}postProcess(A,q){return A}get useLongestToken(){return!1}buildValues(A,q,g){let E=[],F;while(A)E.push(A),F=A.previousComponent,delete A.previousComponent,A=F;E.reverse();let K=E.length,Z=0,j=0,U=0;for(;Z<K;Z++){let O=E[Z];if(!O.removed){if(!O.added&&this.useLongestToken){let Y=q.slice(j,j+O.count);Y=Y.map(function(M,J){let $=g[U+J];return $.length>M.length?$:M}),O.value=this.join(Y)}else O.value=this.join(q.slice(j,j+O.count));if(j+=O.count,!O.added)U+=O.count}else O.value=this.join(g.slice(U,U+O.count)),U+=O.count}return E}}class mQ extends iq{}var ZL=new mQ;function aQ(A,q){let g;for(g=0;g<A.length&&g<q.length;g++)if(A[g]!=q[g])return A.slice(0,g);return A.slice(0,g)}function PQ(A,q){let g;if(!A||!q||A[A.length-1]!=q[q.length-1])return"";for(g=0;g<A.length&&g<q.length;g++)if(A[A.length-(g+1)]!=q[q.length-(g+1)])return A.slice(-g);return A.slice(-g)}function GU(A,q,g){if(A.slice(0,q.length)!=q)throw Error(`string ${JSON.stringify(A)} doesn't start with prefix ${JSON.stringify(q)}; this is a bug`);return g+A.slice(q.length)}function YU(A,q,g){if(!q)return A+g;if(A.slice(-q.length)!=q)throw Error(`string ${JSON.stringify(A)} doesn't end with suffix ${JSON.stringify(q)}; this is a bug`);return A.slice(0,-q.length)+g}function PE(A,q){return GU(A,q,"")}function AZ(A,q){return YU(A,q,"")}function RQ(A,q){return q.slice(0,z9(A,q))}function z9(A,q){let g=0;if(A.length>q.length)g=A.length-q.length;let E=q.length;if(A.length<q.length)E=A.length;let F=Array(E),K=0;F[0]=0;for(let Z=1;Z<E;Z++){if(q[Z]==q[K])F[Z]=F[K];else F[Z]=K;while(K>0&&q[Z]!=q[K])K=F[K];if(q[Z]==q[K])K++}K=0;for(let Z=g;Z<A.length;Z++){while(K>0&&A[Z]!=q[K])K=F[K];if(A[Z]==q[K])K++}return K}function RE(A){let q;for(q=A.length-1;q>=0;q--)if(!A[q].match(/\s/))break;return A.substring(q+1)}function Jg(A){let q=A.match(/^\s*/);return q?q[0]:""}var gZ="a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}",B9=new RegExp(`[${gZ}]+|\\s+|[^${gZ}]`,"ug");class fQ extends iq{equals(A,q,g){if(g.ignoreCase)A=A.toLowerCase(),q=q.toLowerCase();return A.trim()===q.trim()}tokenize(A,q={}){let g;if(q.intlSegmenter){let K=q.intlSegmenter;if(K.resolvedOptions().granularity!="word")throw Error('The segmenter passed must have a granularity of "word"');g=Array.from(K.segment(A),(Z)=>Z.segment)}else g=A.match(B9)||[];let E=[],F=null;return g.forEach((K)=>{if(/\s/.test(K))if(F==null)E.push(K);else E.push(E.pop()+K);else if(F!=null&&/\s/.test(F))if(E[E.length-1]==F)E.push(E.pop()+K);else E.push(F+K);else E.push(K);F=K}),E}join(A){return A.map((q,g)=>{if(g==0)return q;else return q.replace(/^\s+/,"")}).join("")}postProcess(A,q){if(!A||q.oneChangePerToken)return A;let g=null,E=null,F=null;if(A.forEach((K)=>{if(K.added)E=K;else if(K.removed)F=K;else{if(E||F)SQ(g,F,E,K);g=K,E=null,F=null}}),E||F)SQ(g,F,E,null);return A}}var jL=new fQ;function SQ(A,q,g,E){if(q&&g){let F=Jg(q.value),K=RE(q.value),Z=Jg(g.value),j=RE(g.value);if(A){let U=aQ(F,Z);A.value=YU(A.value,Z,U),q.value=PE(q.value,U),g.value=PE(g.value,U)}if(E){let U=PQ(K,j);E.value=GU(E.value,j,U),q.value=AZ(q.value,U),g.value=AZ(g.value,U)}}else if(g){if(A){let F=Jg(g.value);g.value=g.value.substring(F.length)}if(E){let F=Jg(E.value);E.value=E.value.substring(F.length)}}else if(A&&E){let F=Jg(E.value),K=Jg(q.value),Z=RE(q.value),j=aQ(F,K);q.value=PE(q.value,j);let U=PQ(PE(F,j),Z);q.value=AZ(q.value,U),E.value=GU(E.value,F,U),A.value=YU(A.value,F,F.slice(0,F.length-U.length))}else if(E){let F=Jg(E.value),K=RE(q.value),Z=RQ(K,F);q.value=AZ(q.value,Z)}else if(A){let F=RE(A.value),K=Jg(q.value),Z=RQ(F,K);q.value=PE(q.value,Z)}}class cQ extends iq{tokenize(A){let q=new RegExp(`(\\r?\\n)|[${gZ}]+|[^\\S\\n\\r]+|[^${gZ}]`,"ug");return A.match(q)||[]}}var UL=new cQ;class dQ extends iq{constructor(){super(...arguments);this.tokenize=pQ}equals(A,q,g){if(g.ignoreWhitespace){if(!g.newlineIsToken||!A.includes(`
|
|
25
|
+
`);this.realStdoutWrite.call(this.stdout,fq.reset)}exitHandler=(()=>{if(this.destroy(),XA.OTUI_DUMP_CAPTURES)Bun.sleep(100).then(()=>{this.dumpOutputCache(`=== CAPTURED OUTPUT ===
|
|
26
|
+
`)})}).bind(this);warningHandler=((A)=>{console.warn(JSON.stringify(A.message,null,2))}).bind(this);get controlState(){return this._controlState}constructor(A,q,g,E,F,K,Z={}){super();if(NQ.addRenderer(this),this.stdin=g,this.stdout=E,this.realStdoutWrite=E.write,this.lib=A,this._terminalWidth=E.columns??F,this._terminalHeight=E.rows??K,this.width=F,this.height=K,this._useThread=Z.useThread===void 0?!1:Z.useThread,this._splitHeight=Z.experimental_splitHeight||0,this._splitHeight>0)Mq.on("write",this.captureCallback),this.renderOffset=K-this._splitHeight,this.height=this._splitHeight,A.setRenderOffset(q,this.renderOffset);if(this.rendererPtr=q,this.exitOnCtrlC=Z.exitOnCtrlC===void 0?!0:Z.exitOnCtrlC,this.exitSignals=Z.exitSignals||["SIGINT","SIGTERM","SIGQUIT","SIGABRT","SIGHUP","SIGBREAK","SIGPIPE","SIGBUS","SIGFPE"],this.resizeDebounceDelay=Z.debounceDelay||100,this.targetFps=Z.targetFps||30,this.maxFps=Z.maxFps||60,this.targetFrameTime=1000/this.targetFps,this.minTargetFrameTime=1000/this.maxFps,this.memorySnapshotInterval=Z.memorySnapshotInterval??0,this.gatherStats=Z.gatherStats||!1,this.maxStatSamples=Z.maxStatSamples||300,this.enableMouseMovement=Z.enableMouseMovement??!0,this._useMouse=Z.useMouse??!0,this._useAlternateScreen=Z.useAlternateScreen??XA.OTUI_USE_ALTERNATE_SCREEN,this.nextRenderBuffer=this.lib.getNextBuffer(this.rendererPtr),this.currentRenderBuffer=this.lib.getCurrentBuffer(this.rendererPtr),this.postProcessFns=Z.postProcessFns||[],this.prependedInputHandlers=Z.prependInputHandlers||[],this.root=new IU(this),this.memorySnapshotInterval>0)this.startMemorySnapshotTimer();if(XA.OTUI_OVERRIDE_STDOUT)this.stdout.write=this.interceptStdoutWrite.bind(this);process.on("SIGWINCH",this.sigwinchHandler),process.on("warning",this.warningHandler),process.on("uncaughtException",this.handleError),process.on("unhandledRejection",this.handleError),process.on("beforeExit",this.exitHandler);let U=(Z.useKittyKeyboard??{})!==null;if(this._keyHandler=new OU(U),this._keyHandler.on("keypress",(Y)=>{if(this.exitOnCtrlC&&Y.name==="c"&&Y.ctrl){process.nextTick(()=>{this.destroy()});return}}),this.addExitListeners(),this._stdinBuffer=new _U({timeout:5}),this._console=new xU(this,Z.consoleOptions),this.useConsole=Z.useConsole??!0,this._openConsoleOnError=Z.openConsoleOnError??!0,this._onDestroy=Z.onDestroy,global.requestAnimationFrame=(Y)=>{let M=OZ.animationFrameId++;return this.animationRequest.set(M,Y),this.requestLive(),M},global.cancelAnimationFrame=(Y)=>{this.animationRequest.delete(Y)},!global.window)global.window={};if(global.window.requestAnimationFrame=requestAnimationFrame,XA.OTUI_NO_NATIVE_RENDER)this.renderNative=()=>{if(this._splitHeight>0)this.flushStdoutCache(this._splitHeight)};this.setupInput()}addExitListeners(){if(this._exitListenersAdded||this.exitSignals.length===0)return;this.exitSignals.forEach((A)=>{process.addListener(A,this.exitHandler)}),this._exitListenersAdded=!0}removeExitListeners(){if(!this._exitListenersAdded||this.exitSignals.length===0)return;this.exitSignals.forEach((A)=>{process.removeListener(A,this.exitHandler)}),this._exitListenersAdded=!1}get isDestroyed(){return this._isDestroyed}registerLifecyclePass(A){this.lifecyclePasses.add(A)}unregisterLifecyclePass(A){this.lifecyclePasses.delete(A)}getLifecyclePasses(){return this.lifecyclePasses}get currentFocusedRenderable(){return this._currentFocusedRenderable}focusRenderable(A){if(this._currentFocusedRenderable===A)return;if(this._currentFocusedRenderable)this._currentFocusedRenderable.blur();this._currentFocusedRenderable=A}setCapturedRenderable(A){if(this.capturedRenderable===A)return;this.capturedRenderable=A}addToHitGrid(A,q,g,E,F){if(F!==this.capturedRenderable?.num)this.lib.addToHitGrid(this.rendererPtr,A,q,g,E,F)}pushHitGridScissorRect(A,q,g,E){this.lib.hitGridPushScissorRect(this.rendererPtr,A,q,g,E)}popHitGridScissorRect(){this.lib.hitGridPopScissorRect(this.rendererPtr)}clearHitGridScissorRects(){this.lib.hitGridClearScissorRects(this.rendererPtr)}get widthMethod(){return this.capabilities?.unicode==="wcwidth"?"wcwidth":"unicode"}writeOut(A,q,g){if(this.rendererPtr&&this._useThread){let E=typeof A==="string"?A:A?.toString()??"";if(this.lib.writeOut(this.rendererPtr,E),typeof g==="function")process.nextTick(g);return!0}return this.realStdoutWrite.call(this.stdout,A,q,g)}requestRender(){if(this._controlState==="explicit_suspended")return;if(this._isRunning)return;if(this.rendering){this.immediateRerenderRequested=!0;return}if(!this.updateScheduled&&!this.renderTimeout){this.updateScheduled=!0;let q=Date.now()-this.lastTime,g=Math.max(this.minTargetFrameTime-q,0);if(g===0){process.nextTick(()=>this.activateFrame());return}setTimeout(()=>this.activateFrame(),g)}}async activateFrame(){await this.loop(),this.updateScheduled=!1,this.resolveIdleIfNeeded()}get useConsole(){return this._useConsole}set useConsole(A){if(this._useConsole=A,A)this.console.activate();else this.console.deactivate()}get isRunning(){return this._isRunning}isIdleNow(){return!this._isRunning&&!this.rendering&&!this.renderTimeout&&!this.updateScheduled&&!this.immediateRerenderRequested}resolveIdleIfNeeded(){if(!this.isIdleNow())return;let A=this.idleResolvers.splice(0);for(let q of A)q()}idle(){if(this._isDestroyed)return Promise.resolve();if(this.isIdleNow())return Promise.resolve();return new Promise((A)=>{this.idleResolvers.push(A)})}get resolution(){return this._resolution}get console(){return this._console}get keyInput(){return this._keyHandler}get _internalKeyInput(){return this._keyHandler}get terminalWidth(){return this._terminalWidth}get terminalHeight(){return this._terminalHeight}get useThread(){return this._useThread}get useMouse(){return this._useMouse}set useMouse(A){if(this._useMouse===A)return;if(this._useMouse=A,A)this.enableMouse();else this.disableMouse()}get experimental_splitHeight(){return this._splitHeight}get liveRequestCount(){return this.liveRequestCounter}get currentControlState(){return this._controlState}get capabilities(){return this._capabilities}getDebugInputs(){return[...this._debugInputs]}get useKittyKeyboard(){return this.lib.getKittyKeyboardFlags(this.rendererPtr)>0}set useKittyKeyboard(A){let q=A?gO|EO:0;this.lib.setKittyKeyboardFlags(this.rendererPtr,q)}set experimental_splitHeight(A){if(A<0)A=0;let q=this._splitHeight;if(A>0){if(this._splitHeight=A,this.renderOffset=this._terminalHeight-this._splitHeight,this.height=this._splitHeight,q===0){this.useConsole=!1,Mq.on("write",this.captureCallback);let g=this._terminalHeight-this._splitHeight,E=fq.scrollDown(g);this.writeOut(E)}else if(q>this._splitHeight){let g=q-this._splitHeight,E=fq.scrollDown(g);this.writeOut(E)}else if(q<this._splitHeight){let g=this._splitHeight-q,E=fq.scrollUp(g);this.writeOut(E)}}else{if(q>0)this.flushStdoutCache(this._terminalHeight,!0),Mq.off("write",this.captureCallback),this.useConsole=!0;this._splitHeight=0,this.renderOffset=0,this.height=this._terminalHeight}this.width=this._terminalWidth,this.lib.setRenderOffset(this.rendererPtr,this.renderOffset),this.lib.resizeRenderer(this.rendererPtr,this.width,this.height),this.nextRenderBuffer=this.lib.getNextBuffer(this.rendererPtr),this._console.resize(this.width,this.height),this.root.resize(this.width,this.height),this.emit("resize",this.width,this.height),this.requestRender()}interceptStdoutWrite=(A,q,g)=>{let E=A.toString();if(Mq.write("stdout",E),this._splitHeight>0)this.requestRender();if(typeof g==="function")process.nextTick(g);return!0};disableStdoutInterception(){this.stdout.write=this.realStdoutWrite}flushStdoutCache(A,q=!1){if(Mq.size===0&&!q)return!1;let g=Mq.claimOutput(),E=this._terminalHeight-this._splitHeight,F=fq.moveCursorAndClear(E,1),K=this._terminalHeight-this._splitHeight,Z=fq.moveCursor(K,1),j="";if(A>0){let U=this.backgroundColor.toInts(),G=" ".repeat(this.width)+`
|
|
27
|
+
`.repeat(A);if(U[3]===0)j=G;else j=fq.setRgbBackground(U[0],U[1],U[2])+G+fq.resetBackground}return this.writeOut(F+Z+g+j),!0}enableMouse(){this._useMouse=!0,this.lib.enableMouse(this.rendererPtr,this.enableMouseMovement)}disableMouse(){this._useMouse=!1,this.setCapturedRenderable(void 0),this.mouseParser.reset(),this.lib.disableMouse(this.rendererPtr)}enableKittyKeyboard(A=3){this.lib.enableKittyKeyboard(this.rendererPtr,A)}disableKittyKeyboard(){this.lib.disableKittyKeyboard(this.rendererPtr)}set useThread(A){this._useThread=A,this.lib.setUseThread(this.rendererPtr,A)}async setupTerminal(){if(this._terminalIsSetup)return;if(this._terminalIsSetup=!0,this.lib.setupTerminal(this.rendererPtr,this._useAlternateScreen),this._capabilities=this.lib.getTerminalCapabilities(this.rendererPtr),this.debugOverlay.enabled){if(this.lib.setDebugOverlay(this.rendererPtr,!0,this.debugOverlay.corner),!this.memorySnapshotInterval)this.memorySnapshotInterval=3000,this.startMemorySnapshotTimer(),this.automaticMemorySnapshot=!0}if(this.capabilityTimeoutId=setTimeout(()=>{this.capabilityTimeoutId=null,this.removeInputHandler(this.capabilityHandler)},5000),this._useMouse)this.enableMouse();this.queryPixelResolution()}stdinListener=((A)=>{if(this._useMouse&&this.handleMouseData(A))return;this._stdinBuffer.process(A)}).bind(this);addInputHandler(A){this.inputHandlers.push(A)}prependInputHandler(A){this.inputHandlers.unshift(A)}removeInputHandler(A){this.inputHandlers=this.inputHandlers.filter((q)=>q!==A)}capabilityHandler=((A)=>{if(EX(A))return this.lib.processCapabilityResponse(this.rendererPtr,A),this._capabilities=this.lib.getTerminalCapabilities(this.rendererPtr),this.emit("capabilities",this._capabilities),!0;return!1}).bind(this);focusHandler=((A)=>{if(A==="\x1B[I")return this.emit("focus"),!0;if(A==="\x1B[O")return this.emit("blur"),!0;return!1}).bind(this);setupInput(){for(let A of this.prependedInputHandlers)this.addInputHandler(A);if(this.addInputHandler((A)=>{if(FX(A)&&this.waitingForPixelResolution){let q=KX(A);if(q)this._resolution=q,this.waitingForPixelResolution=!1;return!0}return!1}),this.addInputHandler(this.capabilityHandler),this.addInputHandler(this.focusHandler),this.addInputHandler((A)=>{return this._keyHandler.processInput(A)}),this.stdin.setRawMode)this.stdin.setRawMode(!0);this.stdin.resume(),this.stdin.setEncoding("utf8"),this.stdin.on("data",this.stdinListener),this._stdinBuffer.on("data",(A)=>{if(this._debugModeEnabled)this._debugInputs.push({timestamp:new Date().toISOString(),sequence:A});for(let q of this.inputHandlers)if(q(A))return}),this._stdinBuffer.on("paste",(A)=>{this._keyHandler.processPaste(A)})}handleMouseData(A){let q=this.mouseParser.parseMouseEvent(A);if(q){if(this._splitHeight>0){if(q.y<this.renderOffset)return!1;q.y-=this.renderOffset}if(this._latestPointer.x=q.x,this._latestPointer.y=q.y,this._hasPointer=!0,this._lastPointerModifiers=q.modifiers,this._console.visible){let Z=this._console.bounds;if(q.x>=Z.x&&q.x<Z.x+Z.width&&q.y>=Z.y&&q.y<Z.y+Z.height){let j=new kA(null,q);if(this._console.handleMouse(j))return!0}}if(q.type==="scroll"){let Z=this.hitTest(q.x,q.y),j=DA.renderablesByNumber.get(Z);if(j){let U=new kA(j,q);j.processMouseEvent(U)}return!0}let g=this.hitTest(q.x,q.y),E=g===this.lastOverRenderableNum;this.lastOverRenderableNum=g;let F=DA.renderablesByNumber.get(g);if(q.type==="down"&&q.button===0&&!this.currentSelection?.isSelecting&&!q.modifiers.ctrl){if(F&&F.selectable&&!F.isDestroyed&&F.shouldStartSelection(q.x,q.y)){this.startSelection(F,q.x,q.y);let Z=new kA(F,q);return F.processMouseEvent(Z),!0}}if(q.type==="drag"&&this.currentSelection?.isSelecting){if(this.updateSelection(F,q.x,q.y),F){let Z=new kA(F,{...q,isSelecting:!0});F.processMouseEvent(Z)}return!0}if(q.type==="up"&&this.currentSelection?.isSelecting){if(F){let Z=new kA(F,{...q,isSelecting:!0});F.processMouseEvent(Z)}return this.finishSelection(),!0}if(q.type==="down"&&q.button===0&&this.currentSelection){if(q.modifiers.ctrl)return this.currentSelection.isSelecting=!0,this.updateSelection(F,q.x,q.y),!0}if(!E&&(q.type==="drag"||q.type==="move")){if(this.lastOverRenderable&&this.lastOverRenderable!==this.capturedRenderable){let Z=new kA(this.lastOverRenderable,{...q,type:"out"});this.lastOverRenderable.processMouseEvent(Z)}if(this.lastOverRenderable=F,F){let Z=new kA(F,{...q,type:"over",source:this.capturedRenderable});F.processMouseEvent(Z)}}if(this.capturedRenderable&&q.type!=="up"){let Z=new kA(this.capturedRenderable,q);return this.capturedRenderable.processMouseEvent(Z),!0}if(this.capturedRenderable&&q.type==="up"){let Z=new kA(this.capturedRenderable,{...q,type:"drag-end"});if(this.capturedRenderable.processMouseEvent(Z),this.capturedRenderable.processMouseEvent(new kA(this.capturedRenderable,q)),F){let j=new kA(F,{...q,type:"drop",source:this.capturedRenderable});F.processMouseEvent(j)}this.lastOverRenderable=this.capturedRenderable,this.lastOverRenderableNum=this.capturedRenderable.num,this.setCapturedRenderable(void 0),this.requestRender()}let K=void 0;if(F){if(q.type==="drag"&&q.button===0)this.setCapturedRenderable(F);else this.setCapturedRenderable(void 0);K=new kA(F,q),F.processMouseEvent(K)}else this.setCapturedRenderable(void 0),this.lastOverRenderable=void 0;if(!K?.defaultPrevented&&q.type==="down"&&this.currentSelection)this.clearSelection();return!0}return!1}recheckHoverState(){if(this._isDestroyed||!this._hasPointer)return;if(this.capturedRenderable)return;let A=this.hitTest(this._latestPointer.x,this._latestPointer.y),q=DA.renderablesByNumber.get(A),g=this.lastOverRenderable;if(g?.num===A){this.lastOverRenderableNum=A;return}let E={type:"move",button:0,x:this._latestPointer.x,y:this._latestPointer.y,modifiers:this._lastPointerModifiers};if(g){let F=new kA(g,{...E,type:"out"});g.processMouseEvent(F)}if(this.lastOverRenderable=q,this.lastOverRenderableNum=A,q){let F=new kA(q,{...E,type:"over"});q.processMouseEvent(F)}}hitTest(A,q){return this.lib.checkHit(this.rendererPtr,A,q)}takeMemorySnapshot(){if(this._isDestroyed)return;let A=process.memoryUsage();this.lastMemorySnapshot={heapUsed:A.heapUsed,heapTotal:A.heapTotal,arrayBuffers:A.arrayBuffers},this.lib.updateMemoryStats(this.rendererPtr,this.lastMemorySnapshot.heapUsed,this.lastMemorySnapshot.heapTotal,this.lastMemorySnapshot.arrayBuffers),this.emit("memory:snapshot",this.lastMemorySnapshot)}startMemorySnapshotTimer(){this.stopMemorySnapshotTimer(),this.memorySnapshotTimer=setInterval(()=>{this.takeMemorySnapshot()},this.memorySnapshotInterval)}stopMemorySnapshotTimer(){if(this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null}setMemorySnapshotInterval(A){if(this.memorySnapshotInterval=A,this._isRunning&&A>0)this.startMemorySnapshotTimer();else if(A<=0&&this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null}handleResize(A,q){if(this._isDestroyed)return;if(this._splitHeight>0){this.processResize(A,q);return}if(this.resizeTimeoutId!==null)clearTimeout(this.resizeTimeoutId),this.resizeTimeoutId=null;this.resizeTimeoutId=setTimeout(()=>{this.resizeTimeoutId=null,this.processResize(A,q)},this.resizeDebounceDelay)}queryPixelResolution(){this.waitingForPixelResolution=!0,this.lib.queryPixelResolution(this.rendererPtr)}processResize(A,q){if(A===this._terminalWidth&&q===this._terminalHeight)return;let g=this._terminalWidth;if(this._terminalWidth=A,this._terminalHeight=q,this.queryPixelResolution(),this.setCapturedRenderable(void 0),this.mouseParser.reset(),this._splitHeight>0){if(A<g){let E=this._terminalHeight-this._splitHeight*2,F=fq.moveCursorAndClear(E,1);this.writeOut(F)}this.renderOffset=q-this._splitHeight,this.width=A,this.height=this._splitHeight,this.currentRenderBuffer.clear(this.backgroundColor),this.lib.setRenderOffset(this.rendererPtr,this.renderOffset)}else this.width=A,this.height=q;this.lib.resizeRenderer(this.rendererPtr,this.width,this.height),this.nextRenderBuffer=this.lib.getNextBuffer(this.rendererPtr),this.currentRenderBuffer=this.lib.getCurrentBuffer(this.rendererPtr),this._console.resize(this.width,this.height),this.root.resize(this.width,this.height),this.emit("resize",this.width,this.height),this.requestRender()}setBackgroundColor(A){let q=u(A);this.lib.setBackgroundColor(this.rendererPtr,q),this.backgroundColor=q,this.nextRenderBuffer.clear(q),this.requestRender()}toggleDebugOverlay(){let A=!this.debugOverlay.enabled;if(A&&!this.memorySnapshotInterval)this.memorySnapshotInterval=3000,this.startMemorySnapshotTimer(),this.automaticMemorySnapshot=!0;else if(!A&&this.automaticMemorySnapshot)this.stopMemorySnapshotTimer(),this.memorySnapshotInterval=0,this.automaticMemorySnapshot=!1;this.debugOverlay.enabled=!this.debugOverlay.enabled,this.lib.setDebugOverlay(this.rendererPtr,this.debugOverlay.enabled,this.debugOverlay.corner),this.emit("debugOverlay:toggle",this.debugOverlay.enabled),this.requestRender()}configureDebugOverlay(A){this.debugOverlay.enabled=A.enabled??this.debugOverlay.enabled,this.debugOverlay.corner=A.corner??this.debugOverlay.corner,this.lib.setDebugOverlay(this.rendererPtr,this.debugOverlay.enabled,this.debugOverlay.corner),this.requestRender()}setTerminalTitle(A){this.lib.setTerminalTitle(this.rendererPtr,A)}dumpHitGrid(){this.lib.dumpHitGrid(this.rendererPtr)}dumpBuffers(A){this.lib.dumpBuffers(this.rendererPtr,A)}dumpStdoutBuffer(A){this.lib.dumpStdoutBuffer(this.rendererPtr,A)}static setCursorPosition(A,q,g,E=!0){Xq().setCursorPosition(A.rendererPtr,q,g,E)}static setCursorStyle(A,q,g=!1,E){let F=Xq();if(F.setCursorStyle(A.rendererPtr,q,g),E)F.setCursorColor(A.rendererPtr,E)}static setCursorColor(A,q){Xq().setCursorColor(A.rendererPtr,q)}setCursorPosition(A,q,g=!0){this.lib.setCursorPosition(this.rendererPtr,A,q,g)}setCursorStyle(A,q=!1,g){if(this.lib.setCursorStyle(this.rendererPtr,A,q),g)this.lib.setCursorColor(this.rendererPtr,g)}setCursorColor(A){this.lib.setCursorColor(this.rendererPtr,A)}getCursorState(){return this.lib.getCursorState(this.rendererPtr)}addPostProcessFn(A){this.postProcessFns.push(A)}removePostProcessFn(A){this.postProcessFns=this.postProcessFns.filter((q)=>q!==A)}clearPostProcessFns(){this.postProcessFns=[]}setFrameCallback(A){this.frameCallbacks.push(A)}removeFrameCallback(A){this.frameCallbacks=this.frameCallbacks.filter((q)=>q!==A)}clearFrameCallbacks(){this.frameCallbacks=[]}requestLive(){if(this.liveRequestCounter++,this._controlState==="idle"&&this.liveRequestCounter>0)this._controlState="auto_started",this.internalStart()}dropLive(){if(this.liveRequestCounter=Math.max(0,this.liveRequestCounter-1),this._controlState==="auto_started"&&this.liveRequestCounter===0)this._controlState="idle",this.internalPause()}start(){this._controlState="explicit_started",this.internalStart()}auto(){this._controlState=this._isRunning?"auto_started":"idle"}internalStart(){if(!this._isRunning&&!this._isDestroyed){if(this._isRunning=!0,this.memorySnapshotInterval>0)this.startMemorySnapshotTimer();this.startRenderLoop()}}pause(){this._controlState="explicit_paused",this.internalPause()}suspend(){if(this._previousControlState=this._controlState,this._controlState="explicit_suspended",this.internalPause(),this._suspendedMouseEnabled=this._useMouse,this.disableMouse(),this.removeExitListeners(),this._stdinBuffer.clear(),this.stdin.removeListener("data",this.stdinListener),this.lib.suspendRenderer(this.rendererPtr),this.stdin.setRawMode)this.stdin.setRawMode(!1);this.stdin.pause()}resume(){if(this.stdin.setRawMode)this.stdin.setRawMode(!0);if(this.stdin.resume(),this.addExitListeners(),setImmediate(()=>{while(this.stdin.read()!==null);this.stdin.on("data",this.stdinListener)}),this.lib.resumeRenderer(this.rendererPtr),this._suspendedMouseEnabled)this.enableMouse();if(this.currentRenderBuffer.clear(this.backgroundColor),this._controlState=this._previousControlState,this._previousControlState==="auto_started"||this._previousControlState==="explicit_started")this.internalStart();else this.requestRender()}internalPause(){this._isRunning=!1}stop(){this._controlState="explicit_stopped",this.internalStop()}internalStop(){if(this.isRunning&&!this._isDestroyed){if(this._isRunning=!1,this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer),this.memorySnapshotTimer=null;if(this.renderTimeout)clearTimeout(this.renderTimeout),this.renderTimeout=null;if(!this.rendering)this.resolveIdleIfNeeded()}}destroy(){if(this._isDestroyed)return;if(this._isDestroyed=!0,this._destroyPending=!0,this.rendering)return;this.finalizeDestroy()}finalizeDestroy(){if(this._destroyFinalized)return;if(this._destroyFinalized=!0,this._destroyPending=!1,process.removeListener("SIGWINCH",this.sigwinchHandler),process.removeListener("uncaughtException",this.handleError),process.removeListener("unhandledRejection",this.handleError),process.removeListener("warning",this.warningHandler),process.removeListener("beforeExit",this.exitHandler),Mq.removeListener("write",this.captureCallback),this.removeExitListeners(),this.resizeTimeoutId!==null)clearTimeout(this.resizeTimeoutId),this.resizeTimeoutId=null;if(this.capabilityTimeoutId!==null)clearTimeout(this.capabilityTimeoutId),this.capabilityTimeoutId=null;if(this.memorySnapshotTimer)clearInterval(this.memorySnapshotTimer);if(this._paletteDetector)this._paletteDetector.cleanup(),this._paletteDetector=null;if(this._paletteDetectionPromise=null,this._cachedPalette=null,this.emit("destroy"),this.renderTimeout)clearTimeout(this.renderTimeout),this.renderTimeout=null;this._isRunning=!1,this.waitingForPixelResolution=!1,this.setCapturedRenderable(void 0);try{this.root.destroyRecursively()}catch(A){console.error("Error destroying root renderable:",A instanceof Error?A.stack:String(A))}if(this._stdinBuffer.destroy(),this._console.destroy(),this.disableStdoutInterception(),this._splitHeight>0)this.flushStdoutCache(this._splitHeight,!0);if(this.stdin.setRawMode)this.stdin.setRawMode(!1);if(this.stdin.removeListener("data",this.stdinListener),this.lib.destroyRenderer(this.rendererPtr),NQ.removeRenderer(this),this._onDestroy)try{this._onDestroy()}catch(A){console.error("Error in onDestroy callback:",A instanceof Error?A.stack:String(A))}this.resolveIdleIfNeeded()}startRenderLoop(){if(!this._isRunning)return;this.lastTime=Date.now(),this.frameCount=0,this.lastFpsTime=this.lastTime,this.currentFps=0,this.loop()}async loop(){if(this.rendering||this._isDestroyed)return;if(this.renderTimeout=null,this.rendering=!0,this.renderTimeout)clearTimeout(this.renderTimeout),this.renderTimeout=null;try{let A=Date.now(),g=A-this.lastTime;if(this.lastTime=A,this.frameCount++,A-this.lastFpsTime>=1000)this.currentFps=this.frameCount,this.frameCount=0,this.lastFpsTime=A;this.renderStats.frameCount++,this.renderStats.fps=this.currentFps;let E=performance.now(),F=Array.from(this.animationRequest.values());this.animationRequest.clear();let K=performance.now();for(let Y of F)Y(g),this.dropLive();let j=performance.now()-K,U=performance.now();for(let Y of this.frameCallbacks)try{await Y(g)}catch(M){console.error("Error in frame callback:",M)}let G=performance.now();this.renderStats.frameCallbackTime=G-U,this.root.render(this.nextRenderBuffer,g);for(let Y of this.postProcessFns)Y(this.nextRenderBuffer,g);if(this._console.renderToBuffer(this.nextRenderBuffer),!this._isDestroyed){if(this.renderNative(),this._useMouse&&this.lib.getHitGridDirty(this.rendererPtr))this.recheckHoverState();let Y=performance.now()-E;if(this.lib.updateStats(this.rendererPtr,Y,this.renderStats.fps,this.renderStats.frameCallbackTime),this.gatherStats)this.collectStatSample(Y);if(this._isRunning||this.immediateRerenderRequested){let M=this.immediateRerenderRequested?this.minTargetFrameTime:this.targetFrameTime,O=Math.max(1,M-Math.floor(Y));this.immediateRerenderRequested=!1,this.renderTimeout=setTimeout(()=>{this.renderTimeout=null,this.loop()},O)}else clearTimeout(this.renderTimeout),this.renderTimeout=null}}finally{if(this.rendering=!1,this._destroyPending)this.finalizeDestroy();this.resolveIdleIfNeeded()}}intermediateRender(){this.immediateRerenderRequested=!0,this.loop()}renderNative(){if(this.renderingNative)throw console.error("Rendering called concurrently"),new Error("Rendering called concurrently");let A=!1;if(this._splitHeight>0)A=this.flushStdoutCache(this._splitHeight);this.renderingNative=!0,this.lib.render(this.rendererPtr,A),this.renderingNative=!1}collectStatSample(A){if(this.frameTimes.push(A),this.frameTimes.length>this.maxStatSamples)this.frameTimes.shift()}getStats(){let A=[...this.frameTimes],q=A.reduce((K,Z)=>K+Z,0),g=A.length?q/A.length:0,E=A.length?Math.min(...A):0,F=A.length?Math.max(...A):0;return{fps:this.renderStats.fps,frameCount:this.renderStats.frameCount,frameTimes:A,averageFrameTime:g,minFrameTime:E,maxFrameTime:F}}resetStats(){this.frameTimes=[],this.renderStats.frameCount=0}setGatherStats(A){if(this.gatherStats=A,!A)this.frameTimes=[]}getSelection(){return this.currentSelection}get hasSelection(){return!!this.currentSelection}getSelectionContainer(){return this.selectionContainers.length>0?this.selectionContainers[this.selectionContainers.length-1]:null}clearSelection(){if(this.currentSelection){for(let A of this.currentSelection.touchedRenderables)if(A.selectable&&!A.isDestroyed)A.onSelectionChanged(null);this.currentSelection=null}this.selectionContainers=[]}startSelection(A,q,g){if(!A.selectable)return;this.clearSelection(),this.selectionContainers.push(A.parent||this.root),this.currentSelection=new $U(A,{x:q,y:g},{x:q,y:g}),this.currentSelection.isStart=!0,this.notifySelectablesOfSelectionChange()}updateSelection(A,q,g){if(this.currentSelection){if(this.currentSelection.isStart=!1,this.currentSelection.focus={x:q,y:g},this.selectionContainers.length>0){let E=this.selectionContainers[this.selectionContainers.length-1];if(!A||!this.isWithinContainer(A,E)){let F=E.parent||this.root;this.selectionContainers.push(F)}else if(A&&this.selectionContainers.length>1){let F=this.selectionContainers.indexOf(A);if(F===-1){let K=A.parent||this.root;F=this.selectionContainers.indexOf(K)}if(F!==-1&&F<this.selectionContainers.length-1)this.selectionContainers=this.selectionContainers.slice(0,F+1)}}this.notifySelectablesOfSelectionChange()}}requestSelectionUpdate(){if(this.currentSelection?.isSelecting){let A=this._latestPointer,q=this.hitTest(A.x,A.y),g=DA.renderablesByNumber.get(q);this.updateSelection(g,A.x,A.y)}}isWithinContainer(A,q){let g=A;while(g){if(g===q)return!0;g=g.parent}return!1}finishSelection(){if(this.currentSelection)this.currentSelection.isSelecting=!1,this.emit("selection",this.currentSelection),this.notifySelectablesOfSelectionChange()}notifySelectablesOfSelectionChange(){let A=[],q=[],g=this.selectionContainers.length>0?this.selectionContainers[this.selectionContainers.length-1]:this.root;if(this.currentSelection){this.walkSelectableRenderables(g,this.currentSelection.bounds,A,q);for(let E of this.currentSelection.touchedRenderables)if(!q.includes(E)&&!E.isDestroyed)E.onSelectionChanged(null);this.currentSelection.updateSelectedRenderables(A),this.currentSelection.updateTouchedRenderables(q)}}walkSelectableRenderables(A,q,g,E){let F=PU(q,A.getChildrenSortedByPrimaryAxis(),A.primaryAxis,0,0);for(let K of F){if(K.selectable){if(K.onSelectionChanged(this.currentSelection))g.push(K);E.push(K)}if(K.getChildrenCount()>0)this.walkSelectableRenderables(K,q,g,E)}}get paletteDetectionStatus(){if(this._cachedPalette)return"cached";if(this._paletteDetectionPromise)return"detecting";return"idle"}clearPaletteCache(){this._cachedPalette=null}async getPalette(A){if(this._controlState==="explicit_suspended")throw new Error("Cannot detect palette while renderer is suspended");let q=A?.size??16;if(this._cachedPalette&&this._cachedPalette.palette.length!==q)this._cachedPalette=null;if(this._cachedPalette)return this._cachedPalette;if(this._paletteDetectionPromise)return this._paletteDetectionPromise;if(!this._paletteDetector){let g=this.capabilities?.terminal?.name?.toLowerCase()?.includes("tmux")&&this.capabilities?.terminal?.version?.localeCompare("3.6")<0;this._paletteDetector=pQ(this.stdin,this.stdout,this.writeOut.bind(this),g)}return this._paletteDetectionPromise=this._paletteDetector.detect(A).then((g)=>{return this._cachedPalette=g,this._paletteDetectionPromise=null,g}),this._paletteDetectionPromise}}import{EventEmitter as GX}from"events";class kU{lib;viewPtr;textBuffer;_destroyed=!1;constructor(A,q,g){this.lib=A,this.viewPtr=q,this.textBuffer=g}static create(A){let q=Xq(),g=q.createTextBufferView(A.ptr);return new kU(q,g,A)}guard(){if(this._destroyed)throw new Error("TextBufferView is destroyed")}get ptr(){return this.guard(),this.viewPtr}setSelection(A,q,g,E){this.guard(),this.lib.textBufferViewSetSelection(this.viewPtr,A,q,g||null,E||null)}updateSelection(A,q,g){this.guard(),this.lib.textBufferViewUpdateSelection(this.viewPtr,A,q||null,g||null)}resetSelection(){this.guard(),this.lib.textBufferViewResetSelection(this.viewPtr)}getSelection(){return this.guard(),this.lib.textBufferViewGetSelection(this.viewPtr)}hasSelection(){return this.guard(),this.getSelection()!==null}setLocalSelection(A,q,g,E,F,K){return this.guard(),this.lib.textBufferViewSetLocalSelection(this.viewPtr,A,q,g,E,F||null,K||null)}updateLocalSelection(A,q,g,E,F,K){return this.guard(),this.lib.textBufferViewUpdateLocalSelection(this.viewPtr,A,q,g,E,F||null,K||null)}resetLocalSelection(){this.guard(),this.lib.textBufferViewResetLocalSelection(this.viewPtr)}setWrapWidth(A){this.guard(),this.lib.textBufferViewSetWrapWidth(this.viewPtr,A??0)}setWrapMode(A){this.guard(),this.lib.textBufferViewSetWrapMode(this.viewPtr,A)}setViewportSize(A,q){this.guard(),this.lib.textBufferViewSetViewportSize(this.viewPtr,A,q)}setViewport(A,q,g,E){this.guard(),this.lib.textBufferViewSetViewport(this.viewPtr,A,q,g,E)}get lineInfo(){return this.guard(),this.lib.textBufferViewGetLineInfo(this.viewPtr)}get logicalLineInfo(){return this.guard(),this.lib.textBufferViewGetLogicalLineInfo(this.viewPtr)}getSelectedText(){this.guard();let A=this.textBuffer.byteSize;if(A===0)return"";let q=this.lib.textBufferViewGetSelectedTextBytes(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}getPlainText(){this.guard();let A=this.textBuffer.byteSize;if(A===0)return"";let q=this.lib.textBufferViewGetPlainTextBytes(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}setTabIndicator(A){this.guard();let q=typeof A==="string"?A.codePointAt(0)??0:A;this.lib.textBufferViewSetTabIndicator(this.viewPtr,q)}setTabIndicatorColor(A){this.guard(),this.lib.textBufferViewSetTabIndicatorColor(this.viewPtr,A)}setTruncate(A){this.guard(),this.lib.textBufferViewSetTruncate(this.viewPtr,A)}measureForDimensions(A,q){return this.guard(),this.lib.textBufferViewMeasureForDimensions(this.viewPtr,A,q)}getVirtualLineCount(){return this.guard(),this.lib.textBufferViewGetVirtualLineCount(this.viewPtr)}destroy(){if(this._destroyed)return;this._destroyed=!0,this.lib.destroyTextBufferView(this.viewPtr)}}class nq extends GX{static registry=new Map;static nativeEventsSubscribed=!1;lib;bufferPtr;textBufferPtr;id;_destroyed=!1;_textBytes=[];_singleTextBytes=null;_singleTextMemId=null;_syntaxStyle;constructor(A,q){super();this.lib=A,this.bufferPtr=q,this.textBufferPtr=A.editBufferGetTextBuffer(q),this.id=A.editBufferGetId(q),nq.registry.set(this.id,this),nq.subscribeToNativeEvents(A)}static create(A){let q=Xq(),g=q.createEditBuffer(A);return new nq(q,g)}static subscribeToNativeEvents(A){if(nq.nativeEventsSubscribed)return;nq.nativeEventsSubscribed=!0,A.onAnyNativeEvent((q,g)=>{let E=new Uint16Array(g);if(q.startsWith("eb_")&&E.length>=1){let F=E[0],K=nq.registry.get(F);if(K){let Z=q.slice(3),j=g.slice(2);K.emit(Z,j)}}})}guard(){if(this._destroyed)throw new Error("EditBuffer is destroyed")}get ptr(){return this.guard(),this.bufferPtr}setText(A){this.guard();let q=this.lib.encoder.encode(A);if(this._singleTextMemId!==null)this.lib.textBufferReplaceMemBuffer(this.textBufferPtr,this._singleTextMemId,q,!1);else this._singleTextMemId=this.lib.textBufferRegisterMemBuffer(this.textBufferPtr,q,!1);this._singleTextBytes=q,this.lib.editBufferSetTextFromMem(this.bufferPtr,this._singleTextMemId)}setTextOwned(A){this.guard();let q=this.lib.encoder.encode(A);this.lib.editBufferSetText(this.bufferPtr,q)}replaceText(A){this.guard();let q=this.lib.encoder.encode(A);this._textBytes.push(q);let g=this.lib.textBufferRegisterMemBuffer(this.textBufferPtr,q,!1);this.lib.editBufferReplaceTextFromMem(this.bufferPtr,g)}replaceTextOwned(A){this.guard();let q=this.lib.encoder.encode(A);this.lib.editBufferReplaceText(this.bufferPtr,q)}getLineCount(){return this.guard(),this.lib.textBufferGetLineCount(this.textBufferPtr)}getText(){this.guard();let A=1048576,q=this.lib.editBufferGetText(this.bufferPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}insertChar(A){this.guard(),this.lib.editBufferInsertChar(this.bufferPtr,A)}insertText(A){this.guard(),this.lib.editBufferInsertText(this.bufferPtr,A)}deleteChar(){this.guard(),this.lib.editBufferDeleteChar(this.bufferPtr)}deleteCharBackward(){this.guard(),this.lib.editBufferDeleteCharBackward(this.bufferPtr)}deleteRange(A,q,g,E){this.guard(),this.lib.editBufferDeleteRange(this.bufferPtr,A,q,g,E)}newLine(){this.guard(),this.lib.editBufferNewLine(this.bufferPtr)}deleteLine(){this.guard(),this.lib.editBufferDeleteLine(this.bufferPtr)}moveCursorLeft(){this.guard(),this.lib.editBufferMoveCursorLeft(this.bufferPtr)}moveCursorRight(){this.guard(),this.lib.editBufferMoveCursorRight(this.bufferPtr)}moveCursorUp(){this.guard(),this.lib.editBufferMoveCursorUp(this.bufferPtr)}moveCursorDown(){this.guard(),this.lib.editBufferMoveCursorDown(this.bufferPtr)}gotoLine(A){this.guard(),this.lib.editBufferGotoLine(this.bufferPtr,A)}setCursor(A,q){this.guard(),this.lib.editBufferSetCursor(this.bufferPtr,A,q)}setCursorToLineCol(A,q){this.guard(),this.lib.editBufferSetCursorToLineCol(this.bufferPtr,A,q)}setCursorByOffset(A){this.guard(),this.lib.editBufferSetCursorByOffset(this.bufferPtr,A)}getCursorPosition(){return this.guard(),this.lib.editBufferGetCursorPosition(this.bufferPtr)}getNextWordBoundary(){this.guard();let A=this.lib.editBufferGetNextWordBoundary(this.bufferPtr);return{row:A.row,col:A.col,offset:A.offset}}getPrevWordBoundary(){this.guard();let A=this.lib.editBufferGetPrevWordBoundary(this.bufferPtr);return{row:A.row,col:A.col,offset:A.offset}}getEOL(){this.guard();let A=this.lib.editBufferGetEOL(this.bufferPtr);return{row:A.row,col:A.col,offset:A.offset}}offsetToPosition(A){this.guard();let q=this.lib.editBufferOffsetToPosition(this.bufferPtr,A);if(!q)return null;return{row:q.row,col:q.col}}positionToOffset(A,q){return this.guard(),this.lib.editBufferPositionToOffset(this.bufferPtr,A,q)}getLineStartOffset(A){return this.guard(),this.lib.editBufferGetLineStartOffset(this.bufferPtr,A)}getTextRange(A,q){if(this.guard(),A>=q)return"";let g=1048576,E=this.lib.editBufferGetTextRange(this.bufferPtr,A,q,g);if(!E)return"";return this.lib.decoder.decode(E)}getTextRangeByCoords(A,q,g,E){this.guard();let F=1048576,K=this.lib.editBufferGetTextRangeByCoords(this.bufferPtr,A,q,g,E,F);if(!K)return"";return this.lib.decoder.decode(K)}debugLogRope(){this.guard(),this.lib.editBufferDebugLogRope(this.bufferPtr)}undo(){this.guard();let A=256,q=this.lib.editBufferUndo(this.bufferPtr,A);if(!q)return null;return this.lib.decoder.decode(q)}redo(){this.guard();let A=256,q=this.lib.editBufferRedo(this.bufferPtr,A);if(!q)return null;return this.lib.decoder.decode(q)}canUndo(){return this.guard(),this.lib.editBufferCanUndo(this.bufferPtr)}canRedo(){return this.guard(),this.lib.editBufferCanRedo(this.bufferPtr)}clearHistory(){this.guard(),this.lib.editBufferClearHistory(this.bufferPtr)}setDefaultFg(A){this.guard(),this.lib.textBufferSetDefaultFg(this.textBufferPtr,A)}setDefaultBg(A){this.guard(),this.lib.textBufferSetDefaultBg(this.textBufferPtr,A)}setDefaultAttributes(A){this.guard(),this.lib.textBufferSetDefaultAttributes(this.textBufferPtr,A)}resetDefaults(){this.guard(),this.lib.textBufferResetDefaults(this.textBufferPtr)}setSyntaxStyle(A){this.guard(),this._syntaxStyle=A??void 0,this.lib.textBufferSetSyntaxStyle(this.textBufferPtr,A?.ptr??null)}getSyntaxStyle(){return this.guard(),this._syntaxStyle??null}addHighlight(A,q){this.guard(),this.lib.textBufferAddHighlight(this.textBufferPtr,A,q)}addHighlightByCharRange(A){this.guard(),this.lib.textBufferAddHighlightByCharRange(this.textBufferPtr,A)}removeHighlightsByRef(A){this.guard(),this.lib.textBufferRemoveHighlightsByRef(this.textBufferPtr,A)}clearLineHighlights(A){this.guard(),this.lib.textBufferClearLineHighlights(this.textBufferPtr,A)}clearAllHighlights(){this.guard(),this.lib.textBufferClearAllHighlights(this.textBufferPtr)}getLineHighlights(A){return this.guard(),this.lib.textBufferGetLineHighlights(this.textBufferPtr,A)}clear(){this.guard(),this.lib.editBufferClear(this.bufferPtr)}destroy(){if(this._destroyed)return;this._destroyed=!0,nq.registry.delete(this.id),this.lib.destroyEditBuffer(this.bufferPtr)}}class DU{lib;viewPtr;editBuffer;_destroyed=!1;_extmarksController;_textBufferViewPtr;constructor(A,q,g){this.lib=A,this.viewPtr=q,this.editBuffer=g}static create(A,q,g){let E=Xq(),F=E.createEditorView(A.ptr,q,g);return new DU(E,F,A)}guard(){if(this._destroyed)throw new Error("EditorView is destroyed")}get ptr(){return this.guard(),this.viewPtr}setViewportSize(A,q){this.guard(),this.lib.editorViewSetViewportSize(this.viewPtr,A,q)}setViewport(A,q,g,E,F=!0){this.guard(),this.lib.editorViewSetViewport(this.viewPtr,A,q,g,E,F)}getViewport(){return this.guard(),this.lib.editorViewGetViewport(this.viewPtr)}setScrollMargin(A){this.guard(),this.lib.editorViewSetScrollMargin(this.viewPtr,A)}setWrapMode(A){this.guard(),this.lib.editorViewSetWrapMode(this.viewPtr,A)}getVirtualLineCount(){return this.guard(),this.lib.editorViewGetVirtualLineCount(this.viewPtr)}getTotalVirtualLineCount(){return this.guard(),this.lib.editorViewGetTotalVirtualLineCount(this.viewPtr)}setSelection(A,q,g,E){this.guard(),this.lib.editorViewSetSelection(this.viewPtr,A,q,g||null,E||null)}updateSelection(A,q,g){this.guard(),this.lib.editorViewUpdateSelection(this.viewPtr,A,q||null,g||null)}resetSelection(){this.guard(),this.lib.editorViewResetSelection(this.viewPtr)}getSelection(){return this.guard(),this.lib.editorViewGetSelection(this.viewPtr)}hasSelection(){return this.guard(),this.getSelection()!==null}setLocalSelection(A,q,g,E,F,K,Z,j){return this.guard(),this.lib.editorViewSetLocalSelection(this.viewPtr,A,q,g,E,F||null,K||null,Z??!1,j??!1)}updateLocalSelection(A,q,g,E,F,K,Z,j){return this.guard(),this.lib.editorViewUpdateLocalSelection(this.viewPtr,A,q,g,E,F||null,K||null,Z??!1,j??!1)}resetLocalSelection(){this.guard(),this.lib.editorViewResetLocalSelection(this.viewPtr)}getSelectedText(){this.guard();let A=1048576,q=this.lib.editorViewGetSelectedTextBytes(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}getCursor(){return this.guard(),this.lib.editorViewGetCursor(this.viewPtr)}getText(){this.guard();let A=1048576,q=this.lib.editorViewGetText(this.viewPtr,A);if(!q)return"";return this.lib.decoder.decode(q)}getVisualCursor(){return this.guard(),this.lib.editorViewGetVisualCursor(this.viewPtr)}moveUpVisual(){this.guard(),this.lib.editorViewMoveUpVisual(this.viewPtr)}moveDownVisual(){this.guard(),this.lib.editorViewMoveDownVisual(this.viewPtr)}deleteSelectedText(){this.guard(),this.lib.editorViewDeleteSelectedText(this.viewPtr)}setCursorByOffset(A){this.guard(),this.lib.editorViewSetCursorByOffset(this.viewPtr,A)}getNextWordBoundary(){return this.guard(),this.lib.editorViewGetNextWordBoundary(this.viewPtr)}getPrevWordBoundary(){return this.guard(),this.lib.editorViewGetPrevWordBoundary(this.viewPtr)}getEOL(){return this.guard(),this.lib.editorViewGetEOL(this.viewPtr)}getVisualSOL(){return this.guard(),this.lib.editorViewGetVisualSOL(this.viewPtr)}getVisualEOL(){return this.guard(),this.lib.editorViewGetVisualEOL(this.viewPtr)}getLineInfo(){return this.guard(),this.lib.editorViewGetLineInfo(this.viewPtr)}getLogicalLineInfo(){return this.guard(),this.lib.editorViewGetLogicalLineInfo(this.viewPtr)}get extmarks(){if(!this._extmarksController)this._extmarksController=dQ(this.editBuffer,this);return this._extmarksController}setPlaceholderStyledText(A){this.guard(),this.lib.editorViewSetPlaceholderStyledText(this.viewPtr,A)}setTabIndicator(A){this.guard();let q=typeof A==="string"?A.codePointAt(0)??0:A;this.lib.editorViewSetTabIndicator(this.viewPtr,q)}setTabIndicatorColor(A){this.guard(),this.lib.editorViewSetTabIndicatorColor(this.viewPtr,A)}measureForDimensions(A,q){if(this.guard(),!this._textBufferViewPtr)this._textBufferViewPtr=this.lib.editorViewGetTextBufferView(this.viewPtr);return this.lib.textBufferViewMeasureForDimensions(this._textBufferViewPtr,A,q)}destroy(){if(this._destroyed)return;if(this._extmarksController)this._extmarksController.destroy(),this._extmarksController=void 0;this._destroyed=!0,this.lib.destroyEditorView(this.viewPtr)}}function YX(A){let q={};for(let g of A){let E={};if(g.style.foreground)E.fg=u(g.style.foreground);if(g.style.background)E.bg=u(g.style.background);if(g.style.bold!==void 0)E.bold=g.style.bold;if(g.style.italic!==void 0)E.italic=g.style.italic;if(g.style.underline!==void 0)E.underline=g.style.underline;if(g.style.dim!==void 0)E.dim=g.style.dim;for(let F of g.scope)q[F]=E}return q}class pE{lib;stylePtr;_destroyed=!1;nameCache=new Map;styleDefs=new Map;mergedCache=new Map;constructor(A,q){this.lib=A,this.stylePtr=q}static create(){let A=Xq(),q=A.createSyntaxStyle();return new pE(A,q)}static fromTheme(A){let q=pE.create(),g=YX(A);for(let[E,F]of Object.entries(g))q.registerStyle(E,F);return q}static fromStyles(A){let q=pE.create();for(let[g,E]of Object.entries(A))q.registerStyle(g,E);return q}guard(){if(this._destroyed)throw new Error("NativeSyntaxStyle is destroyed")}registerStyle(A,q){this.guard();let g=wE({bold:q.bold,italic:q.italic,underline:q.underline,dim:q.dim}),E=this.lib.syntaxStyleRegister(this.stylePtr,A,q.fg||null,q.bg||null,g);return this.nameCache.set(A,E),this.styleDefs.set(A,q),E}resolveStyleId(A){this.guard();let q=this.nameCache.get(A);if(q!==void 0)return q;let g=this.lib.syntaxStyleResolveByName(this.stylePtr,A);if(g!==null)this.nameCache.set(A,g);return g}getStyleId(A){this.guard();let q=this.resolveStyleId(A);if(q!==null)return q;if(A.includes(".")){let g=A.split(".")[0];return this.resolveStyleId(g)}return null}get ptr(){return this.guard(),this.stylePtr}getStyleCount(){return this.guard(),this.lib.syntaxStyleGetStyleCount(this.stylePtr)}clearNameCache(){this.nameCache.clear()}getStyle(A){if(this.guard(),Object.prototype.hasOwnProperty.call(this.styleDefs,A))return;let q=this.styleDefs.get(A);if(q)return q;if(A.includes(".")){let g=A.split(".")[0];if(Object.prototype.hasOwnProperty.call(this.styleDefs,g))return;return this.styleDefs.get(g)}return}mergeStyles(...A){this.guard();let q=A.join(":"),g=this.mergedCache.get(q);if(g)return g;let E={};for(let Z of A){let j=this.getStyle(Z);if(!j)continue;if(j.fg)E.fg=j.fg;if(j.bg)E.bg=j.bg;if(j.bold!==void 0)E.bold=j.bold;if(j.italic!==void 0)E.italic=j.italic;if(j.underline!==void 0)E.underline=j.underline;if(j.dim!==void 0)E.dim=j.dim}let F=wE({bold:E.bold,italic:E.italic,underline:E.underline,dim:E.dim}),K={fg:E.fg,bg:E.bg,attributes:F};return this.mergedCache.set(q,K),K}clearCache(){this.guard(),this.mergedCache.clear()}getCacheSize(){return this.guard(),this.mergedCache.size}getAllStyles(){return this.guard(),new Map(this.styleDefs)}getRegisteredNames(){return this.guard(),Array.from(this.styleDefs.keys())}destroy(){if(this._destroyed)return;this._destroyed=!0,this.nameCache.clear(),this.styleDefs.clear(),this.mergedCache.clear(),this.lib.destroySyntaxStyle(this.stylePtr)}}class LO{timelines=new Set;renderer=null;frameCallback=null;isLive=!1;defaults={frameRate:60};attach(A){if(this.renderer)this.detach();this.renderer=A,this.frameCallback=async(q)=>{this.update(q)},A.setFrameCallback(this.frameCallback)}detach(){if(this.renderer&&this.frameCallback){if(this.renderer.removeFrameCallback(this.frameCallback),this.isLive)this.renderer.dropLive(),this.isLive=!1}this.renderer=null,this.frameCallback=null}updateLiveState(){if(!this.renderer)return;let A=Array.from(this.timelines).some((q)=>!q.synced&&q.isPlaying&&!q.isComplete);if(A&&!this.isLive)this.renderer.requestLive(),this.isLive=!0;else if(!A&&this.isLive)this.renderer.dropLive(),this.isLive=!1}onTimelineStateChange=(A)=>{this.updateLiveState()};register(A){if(!this.timelines.has(A))this.timelines.add(A),A.addStateChangeListener(this.onTimelineStateChange),this.updateLiveState()}unregister(A){if(this.timelines.has(A))this.timelines.delete(A),A.removeStateChangeListener(this.onTimelineStateChange),this.updateLiveState()}clear(){for(let A of this.timelines)A.removeStateChangeListener(this.onTimelineStateChange);this.timelines.clear(),this.updateLiveState()}update(A){for(let q of this.timelines)if(!q.synced)q.update(A)}}var FW=new LO;function f6(A){if(A===void 0)return!0;if(typeof A==="number"&&!Number.isNaN(A))return!0;return m6(A)}class b extends DA{_backgroundColor;_border;_borderStyle;_borderColor;_focusedBorderColor;_customBorderCharsObj;_customBorderChars;borderSides;shouldFill;_title;_titleAlignment;_defaultOptions={backgroundColor:"transparent",borderStyle:"single",border:!1,borderColor:"#FFFFFF",shouldFill:!0,titleAlignment:"left",focusedBorderColor:"#00AAFF"};constructor(A,q){super(A,q);if(this._backgroundColor=u(q.backgroundColor||this._defaultOptions.backgroundColor),this._border=q.border??this._defaultOptions.border,!q.border&&(q.borderStyle||q.borderColor||q.focusedBorderColor||q.customBorderChars))this._border=!0;if(this._borderStyle=jZ(q.borderStyle,this._defaultOptions.borderStyle),this._borderColor=u(q.borderColor||this._defaultOptions.borderColor),this._focusedBorderColor=u(q.focusedBorderColor||this._defaultOptions.focusedBorderColor),this._customBorderCharsObj=q.customBorderChars,this._customBorderChars=this._customBorderCharsObj?lg(this._customBorderCharsObj):void 0,this.borderSides=UZ(this._border),this.shouldFill=q.shouldFill??this._defaultOptions.shouldFill,this._title=q.title,this._titleAlignment=q.titleAlignment||this._defaultOptions.titleAlignment,this.applyYogaBorders(),q.gap!==void 0||q.rowGap!==void 0||q.columnGap!==void 0)this.applyYogaGap(q)}initializeBorder(){if(this._border===!1)this._border=!0,this.borderSides=UZ(this._border),this.applyYogaBorders()}get customBorderChars(){return this._customBorderCharsObj}set customBorderChars(A){this._customBorderCharsObj=A,this._customBorderChars=A?lg(A):void 0,this.requestRender()}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){let q=u(A??this._defaultOptions.backgroundColor);if(this._backgroundColor!==q)this._backgroundColor=q,this.requestRender()}get border(){return this._border}set border(A){if(this._border!==A)this._border=A,this.borderSides=UZ(A),this.applyYogaBorders(),this.requestRender()}get borderStyle(){return this._borderStyle}set borderStyle(A){let q=jZ(A,this._defaultOptions.borderStyle);if(this._borderStyle!==q||!this._border)this._borderStyle=q,this._customBorderChars=void 0,this.initializeBorder(),this.requestRender()}get borderColor(){return this._borderColor}set borderColor(A){let q=u(A??this._defaultOptions.borderColor);if(this._borderColor!==q)this._borderColor=q,this.initializeBorder(),this.requestRender()}get focusedBorderColor(){return this._focusedBorderColor}set focusedBorderColor(A){let q=u(A??this._defaultOptions.focusedBorderColor);if(this._focusedBorderColor!==q){if(this._focusedBorderColor=q,this.initializeBorder(),this._focused)this.requestRender()}}get title(){return this._title}set title(A){if(this._title!==A)this._title=A,this.requestRender()}get titleAlignment(){return this._titleAlignment}set titleAlignment(A){if(this._titleAlignment!==A)this._titleAlignment=A,this.requestRender()}renderSelf(A){let q=this._focused?this._focusedBorderColor:this._borderColor;A.drawBox({x:this.x,y:this.y,width:this.width,height:this.height,borderStyle:this._borderStyle,customBorderChars:this._customBorderChars,border:this._border,borderColor:q,backgroundColor:this._backgroundColor,shouldFill:this.shouldFill,title:this._title,titleAlignment:this._titleAlignment})}getScissorRect(){let A=super.getScissorRect();if(!this.borderSides.top&&!this.borderSides.right&&!this.borderSides.bottom&&!this.borderSides.left)return A;let q=this.borderSides.left?1:0,g=this.borderSides.right?1:0,E=this.borderSides.top?1:0,F=this.borderSides.bottom?1:0;return{x:A.x+q,y:A.y+E,width:Math.max(0,A.width-q-g),height:Math.max(0,A.height-E-F)}}applyYogaBorders(){let A=this.yogaNode;A.setBorder(n.Left,this.borderSides.left?1:0),A.setBorder(n.Right,this.borderSides.right?1:0),A.setBorder(n.Top,this.borderSides.top?1:0),A.setBorder(n.Bottom,this.borderSides.bottom?1:0),this.requestRender()}applyYogaGap(A){let q=this.yogaNode;if(f6(A.gap))q.setGap($q.All,A.gap);if(f6(A.rowGap))q.setGap($q.Row,A.rowGap);if(f6(A.columnGap))q.setGap($q.Column,A.columnGap)}set gap(A){if(f6(A))this.yogaNode.setGap($q.All,A),this.requestRender()}set rowGap(A){if(f6(A))this.yogaNode.setGap($q.Row,A),this.requestRender()}set columnGap(A){if(f6(A))this.yogaNode.setGap($q.Column,A),this.requestRender()}}class VO extends DA{selectable=!0;_defaultFg;_defaultBg;_defaultAttributes;_selectionBg;_selectionFg;_wrapMode="word";lastLocalSelection=null;_tabIndicator;_tabIndicatorColor;_scrollX=0;_scrollY=0;_truncate=!1;textBuffer;textBufferView;_defaultOptions={fg:OA.fromValues(1,1,1,1),bg:OA.fromValues(0,0,0,0),selectionBg:void 0,selectionFg:void 0,selectable:!0,attributes:0,wrapMode:"word",tabIndicator:void 0,tabIndicatorColor:void 0,truncate:!1};constructor(A,q){super(A,q);this._defaultFg=u(q.fg??this._defaultOptions.fg),this._defaultBg=u(q.bg??this._defaultOptions.bg),this._defaultAttributes=q.attributes??this._defaultOptions.attributes,this._selectionBg=q.selectionBg?u(q.selectionBg):this._defaultOptions.selectionBg,this._selectionFg=q.selectionFg?u(q.selectionFg):this._defaultOptions.selectionFg,this.selectable=q.selectable??this._defaultOptions.selectable,this._wrapMode=q.wrapMode??this._defaultOptions.wrapMode,this._tabIndicator=q.tabIndicator??this._defaultOptions.tabIndicator,this._tabIndicatorColor=q.tabIndicatorColor?u(q.tabIndicatorColor):this._defaultOptions.tabIndicatorColor,this._truncate=q.truncate??this._defaultOptions.truncate,this.textBuffer=YZ.create(this._ctx.widthMethod),this.textBufferView=kU.create(this.textBuffer);let g=pE.create();if(this.textBuffer.setSyntaxStyle(g),this.textBufferView.setWrapMode(this._wrapMode),this.setupMeasureFunc(),this.textBuffer.setDefaultFg(this._defaultFg),this.textBuffer.setDefaultBg(this._defaultBg),this.textBuffer.setDefaultAttributes(this._defaultAttributes),this._tabIndicator!==void 0)this.textBufferView.setTabIndicator(this._tabIndicator);if(this._tabIndicatorColor!==void 0)this.textBufferView.setTabIndicatorColor(this._tabIndicatorColor);if(this._wrapMode!=="none"&&this.width>0)this.textBufferView.setWrapWidth(this.width);if(this.width>0&&this.height>0)this.textBufferView.setViewport(this._scrollX,this._scrollY,this.width,this.height);this.textBufferView.setTruncate(this._truncate),this.updateTextInfo()}onMouseEvent(A){if(A.type==="scroll")this.handleScroll(A)}handleScroll(A){if(!A.scroll)return;let{direction:q,delta:g}=A.scroll;if(q==="up")this.scrollY-=g;else if(q==="down")this.scrollY+=g;if(this._wrapMode==="none"){if(q==="left")this.scrollX-=g;else if(q==="right")this.scrollX+=g}}get lineInfo(){return this.textBufferView.logicalLineInfo}get lineCount(){return this.textBuffer.getLineCount()}get virtualLineCount(){return this.textBufferView.getVirtualLineCount()}get scrollY(){return this._scrollY}set scrollY(A){let q=Math.max(0,this.scrollHeight-this.height),g=Math.max(0,Math.min(A,q));if(this._scrollY!==g)this._scrollY=g,this.updateViewportOffset(),this.requestRender()}get scrollX(){return this._scrollX}set scrollX(A){let q=Math.max(0,this.scrollWidth-this.width),g=Math.max(0,Math.min(A,q));if(this._scrollX!==g)this._scrollX=g,this.updateViewportOffset(),this.requestRender()}get scrollWidth(){return this.lineInfo.maxLineWidth}get scrollHeight(){return this.lineInfo.lineStarts.length}get maxScrollY(){return Math.max(0,this.scrollHeight-this.height)}get maxScrollX(){return Math.max(0,this.scrollWidth-this.width)}updateViewportOffset(){if(this.width>0&&this.height>0)this.textBufferView.setViewport(this._scrollX,this._scrollY,this.width,this.height)}get plainText(){return this.textBuffer.getPlainText()}get textLength(){return this.textBuffer.length}get fg(){return this._defaultFg}set fg(A){let q=u(A??this._defaultOptions.fg);if(this._defaultFg!==q)this._defaultFg=q,this.textBuffer.setDefaultFg(this._defaultFg),this.onFgChanged(q),this.requestRender()}get selectionBg(){return this._selectionBg}set selectionBg(A){let q=A?u(A):this._defaultOptions.selectionBg;if(this._selectionBg!==q){if(this._selectionBg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get selectionFg(){return this._selectionFg}set selectionFg(A){let q=A?u(A):this._defaultOptions.selectionFg;if(this._selectionFg!==q){if(this._selectionFg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get bg(){return this._defaultBg}set bg(A){let q=u(A??this._defaultOptions.bg);if(this._defaultBg!==q)this._defaultBg=q,this.textBuffer.setDefaultBg(this._defaultBg),this.onBgChanged(q),this.requestRender()}get attributes(){return this._defaultAttributes}set attributes(A){if(this._defaultAttributes!==A)this._defaultAttributes=A,this.textBuffer.setDefaultAttributes(this._defaultAttributes),this.onAttributesChanged(A),this.requestRender()}get wrapMode(){return this._wrapMode}set wrapMode(A){if(this._wrapMode!==A){if(this._wrapMode=A,this.textBufferView.setWrapMode(this._wrapMode),A!=="none"&&this.width>0)this.textBufferView.setWrapWidth(this.width);this.yogaNode.markDirty(),this.requestRender()}}get tabIndicator(){return this._tabIndicator}set tabIndicator(A){if(this._tabIndicator!==A){if(this._tabIndicator=A,A!==void 0)this.textBufferView.setTabIndicator(A);this.requestRender()}}get tabIndicatorColor(){return this._tabIndicatorColor}set tabIndicatorColor(A){let q=A?u(A):void 0;if(this._tabIndicatorColor!==q){if(this._tabIndicatorColor=q,q!==void 0)this.textBufferView.setTabIndicatorColor(q);this.requestRender()}}get truncate(){return this._truncate}set truncate(A){if(this._truncate!==A)this._truncate=A,this.textBufferView.setTruncate(A),this.requestRender()}onResize(A,q){this.textBufferView.setViewport(this._scrollX,this._scrollY,A,q),this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change")}refreshLocalSelection(){if(this.lastLocalSelection)return this.updateLocalSelection(this.lastLocalSelection);return!1}updateLocalSelection(A){if(!A?.isActive)return this.textBufferView.resetLocalSelection(),!0;return this.textBufferView.setLocalSelection(A.anchorX,A.anchorY,A.focusX,A.focusY,this._selectionBg,this._selectionFg)}updateTextInfo(){if(this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change")}setupMeasureFunc(){let A=(q,g,E,F)=>{let K;if(g===lq.Undefined||isNaN(q))K=0;else K=q;let Z=isNaN(E)?1:E,j=this.textBufferView.measureForDimensions(Math.floor(K),Math.floor(Z)),U=j?Math.max(1,j.maxWidth):1,G=j?Math.max(1,j.lineCount):1;if(g===lq.AtMost&&this._positionType!=="absolute")return{width:Math.min(K,U),height:Math.min(Z,G)};return{width:U,height:G}};this.yogaNode.setMeasureFunc(A)}shouldStartSelection(A,q){if(!this.selectable)return!1;let g=A-this.x,E=q-this.y;return g>=0&&g<this.width&&E>=0&&E<this.height}onSelectionChanged(A){let q=XU(A,this.x,this.y);this.lastLocalSelection=q;let g;if(!q?.isActive)this.textBufferView.resetLocalSelection(),g=!0;else if(A?.isStart)g=this.textBufferView.setLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg);else g=this.textBufferView.updateLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg);if(g)this.requestRender();return this.hasSelection()}getSelectedText(){return this.textBufferView.getSelectedText()}hasSelection(){return this.textBufferView.hasSelection()}getSelection(){return this.textBufferView.getSelection()}render(A,q){if(!this.visible)return;if(this.markClean(),this._ctx.addToHitGrid(this.x,this.y,this.width,this.height,this.num),this.renderSelf(A),this.buffered&&this.frameBuffer)A.drawFrameBuffer(this.x,this.y,this.frameBuffer)}renderSelf(A){if(this.textBuffer.ptr)A.drawTextBuffer(this.textBufferView,this.x,this.y)}destroy(){this.textBufferView.destroy(),this.textBuffer.destroy(),super.destroy()}onFgChanged(A){}onBgChanged(A){}onAttributesChanged(A){}}var WO=Symbol.for("@opentui/core/TextNodeRenderable");function JZ(A){return!!A?.[WO]}function UO(A){return A.chunks.map((q)=>{let g=new lE({fg:q.fg,bg:q.bg,attributes:q.attributes,link:q.link});return g.add(q.text),g})}class lE extends bE{[WO]=!0;_fg;_bg;_attributes;_link;_children=[];parent=null;constructor(A){super(A);this._fg=A.fg?u(A.fg):void 0,this._bg=A.bg?u(A.bg):void 0,this._attributes=A.attributes??0,this._link=A.link}get children(){return this._children}set children(A){this._children=A,this.requestRender()}requestRender(){this.markDirty(),this.parent?.requestRender()}add(A,q){if(typeof A==="string"){if(q!==void 0)return this._children.splice(q,0,A),this.requestRender(),q;let g=this._children.length;return this._children.push(A),this.requestRender(),g}if(JZ(A)){if(q!==void 0)return this._children.splice(q,0,A),A.parent=this,this.requestRender(),q;let g=this._children.length;return this._children.push(A),A.parent=this,this.requestRender(),g}if(CQ(A)){let g=UO(A);if(q!==void 0)return this._children.splice(q,0,...g),g.forEach((F)=>F.parent=this),this.requestRender(),q;let E=this._children.length;return this._children.push(...g),g.forEach((F)=>F.parent=this),this.requestRender(),E}throw new Error("TextNodeRenderable only accepts strings, TextNodeRenderable instances, or StyledText instances")}replace(A,q){if(this._children[q]=A,typeof A!=="string")A.parent=this;this.requestRender()}insertBefore(A,q){if(!q||!JZ(q))throw new Error("Anchor must be a TextNodeRenderable");let g=this._children.indexOf(q);if(g===-1)throw new Error("Anchor node not found in children");if(typeof A==="string")this._children.splice(g,0,A);else if(JZ(A))this._children.splice(g,0,A),A.parent=this;else if(A instanceof b6){let E=UO(A);this._children.splice(g,0,...E),E.forEach((F)=>F.parent=this)}else throw new Error("Child must be a string, TextNodeRenderable, or StyledText instance");return this.requestRender(),this}remove(A){let q=this.getRenderableIndex(A);if(q===-1)throw new Error("Child not found in children");let g=this._children[q];return this._children.splice(q,1),g.parent=null,this.requestRender(),this}clear(){this._children=[],this.requestRender()}mergeStyles(A){return{fg:this._fg??A.fg,bg:this._bg??A.bg,attributes:this._attributes|A.attributes,link:this._link??A.link}}gatherWithInheritedStyle(A={fg:void 0,bg:void 0,attributes:0}){let q=this.mergeStyles(A),g=[];for(let E of this._children)if(typeof E==="string")g.push({__isChunk:!0,text:E,fg:q.fg,bg:q.bg,attributes:q.attributes,link:q.link});else{let F=E.gatherWithInheritedStyle(q);g.push(...F)}return this.markClean(),g}static fromString(A,q={}){let g=new lE(q);return g.add(A),g}static fromNodes(A,q={}){let g=new lE(q);for(let E of A)g.add(E);return g}toChunks(A={fg:void 0,bg:void 0,attributes:0}){return this.gatherWithInheritedStyle(A)}getChildren(){return this._children.filter((A)=>typeof A!=="string")}getChildrenCount(){return this._children.length}getRenderable(A){return this._children.find((q)=>typeof q!=="string"&&q.id===A)}getRenderableIndex(A){return this._children.findIndex((q)=>JZ(q)&&q.id===A)}get fg(){return this._fg}set fg(A){if(!A){this._fg=void 0,this.requestRender();return}this._fg=u(A),this.requestRender()}set bg(A){if(!A){this._bg=void 0,this.requestRender();return}this._bg=u(A),this.requestRender()}get bg(){return this._bg}set attributes(A){this._attributes=A,this.requestRender()}get attributes(){return this._attributes}set link(A){this._link=A,this.requestRender()}get link(){return this._link}findDescendantById(A){return}}class NO extends lE{ctx;textParent;constructor(A,q,g){super(q);this.ctx=A,this.textParent=g}requestRender(){this.markDirty(),this.ctx.requestRender()}}class rq{diff(A,q,g={}){let E;if(typeof g==="function")E=g,g={};else if("callback"in g)E=g.callback;let F=this.castInput(A,g),K=this.castInput(q,g),Z=this.removeEmpty(this.tokenize(F,g)),j=this.removeEmpty(this.tokenize(K,g));return this.diffWithOptionsObj(Z,j,g,E)}diffWithOptionsObj(A,q,g,E){var F;let K=(L)=>{if(L=this.postProcess(L,g),E){setTimeout(function(){E(L)},0);return}else return L},Z=q.length,j=A.length,U=1,G=Z+j;if(g.maxEditLength!=null)G=Math.min(G,g.maxEditLength);let Y=(F=g.timeout)!==null&&F!==void 0?F:1/0,M=Date.now()+Y,O=[{oldPos:-1,lastComponent:void 0}],$=this.extractCommon(O[0],q,A,0,g);if(O[0].oldPos+1>=j&&$+1>=Z)return K(this.buildValues(O[0].lastComponent,q,A));let _=-1/0,x=1/0,N=()=>{for(let L=Math.max(_,-U);L<=Math.min(x,U);L+=2){let P,k=O[L-1],C=O[L+1];if(k)O[L-1]=void 0;let i=!1;if(C){let a=C.oldPos-L;i=C&&0<=a&&a<Z}let p=k&&k.oldPos+1<j;if(!i&&!p){O[L]=void 0;continue}if(!p||i&&k.oldPos<C.oldPos)P=this.addToPath(C,!0,!1,0,g);else P=this.addToPath(k,!1,!0,1,g);if($=this.extractCommon(P,q,A,L,g),P.oldPos+1>=j&&$+1>=Z)return K(this.buildValues(P.lastComponent,q,A))||!0;else{if(O[L]=P,P.oldPos+1>=j)x=Math.min(x,L-1);if($+1>=Z)_=Math.max(_,L+1)}}U++};if(E)(function L(){setTimeout(function(){if(U>G||Date.now()>M)return E(void 0);if(!N())L()},0)})();else while(U<=G&&Date.now()<=M){let L=N();if(L)return L}}addToPath(A,q,g,E,F){let K=A.lastComponent;if(K&&!F.oneChangePerToken&&K.added===q&&K.removed===g)return{oldPos:A.oldPos+E,lastComponent:{count:K.count+1,added:q,removed:g,previousComponent:K.previousComponent}};else return{oldPos:A.oldPos+E,lastComponent:{count:1,added:q,removed:g,previousComponent:K}}}extractCommon(A,q,g,E,F){let K=q.length,Z=g.length,j=A.oldPos,U=j-E,G=0;while(U+1<K&&j+1<Z&&this.equals(g[j+1],q[U+1],F))if(U++,j++,G++,F.oneChangePerToken)A.lastComponent={count:1,previousComponent:A.lastComponent,added:!1,removed:!1};if(G&&!F.oneChangePerToken)A.lastComponent={count:G,previousComponent:A.lastComponent,added:!1,removed:!1};return A.oldPos=j,U}equals(A,q,g){if(g.comparator)return g.comparator(A,q);else return A===q||!!g.ignoreCase&&A.toLowerCase()===q.toLowerCase()}removeEmpty(A){let q=[];for(let g=0;g<A.length;g++)if(A[g])q.push(A[g]);return q}castInput(A,q){return A}tokenize(A,q){return Array.from(A)}join(A){return A.join("")}postProcess(A,q){return A}get useLongestToken(){return!1}buildValues(A,q,g){let E=[],F;while(A)E.push(A),F=A.previousComponent,delete A.previousComponent,A=F;E.reverse();let K=E.length,Z=0,j=0,U=0;for(;Z<K;Z++){let G=E[Z];if(!G.removed){if(!G.added&&this.useLongestToken){let Y=q.slice(j,j+G.count);Y=Y.map(function(M,O){let $=g[U+O];return $.length>M.length?$:M}),G.value=this.join(Y)}else G.value=this.join(q.slice(j,j+G.count));if(j+=G.count,!G.added)U+=G.count}else G.value=this.join(g.slice(U,U+G.count)),U+=G.count}return E}}class TO extends rq{}var KW=new TO;function GO(A,q){let g;for(g=0;g<A.length&&g<q.length;g++)if(A[g]!=q[g])return A.slice(0,g);return A.slice(0,g)}function YO(A,q){let g;if(!A||!q||A[A.length-1]!=q[q.length-1])return"";for(g=0;g<A.length&&g<q.length;g++)if(A[A.length-(g+1)]!=q[q.length-(g+1)])return A.slice(-g);return A.slice(-g)}function aU(A,q,g){if(A.slice(0,q.length)!=q)throw Error(`string ${JSON.stringify(A)} doesn't start with prefix ${JSON.stringify(q)}; this is a bug`);return g+A.slice(q.length)}function hU(A,q,g){if(!q)return A+g;if(A.slice(-q.length)!=q)throw Error(`string ${JSON.stringify(A)} doesn't end with suffix ${JSON.stringify(q)}; this is a bug`);return A.slice(0,-q.length)+g}function vE(A,q){return aU(A,q,"")}function MZ(A,q){return hU(A,q,"")}function QO(A,q){return q.slice(0,QX(A,q))}function QX(A,q){let g=0;if(A.length>q.length)g=A.length-q.length;let E=q.length;if(A.length<q.length)E=A.length;let F=Array(E),K=0;F[0]=0;for(let Z=1;Z<E;Z++){if(q[Z]==q[K])F[Z]=F[K];else F[Z]=K;while(K>0&&q[Z]!=q[K])K=F[K];if(q[Z]==q[K])K++}K=0;for(let Z=g;Z<A.length;Z++){while(K>0&&A[Z]!=q[K])K=F[K];if(A[Z]==q[K])K++}return K}function mE(A){let q;for(q=A.length-1;q>=0;q--)if(!A[q].match(/\s/))break;return A.substring(q+1)}function Hg(A){let q=A.match(/^\s*/);return q?q[0]:""}var $Z="a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}",OX=new RegExp(`[${$Z}]+|\\s+|[^${$Z}]`,"ug");class IO extends rq{equals(A,q,g){if(g.ignoreCase)A=A.toLowerCase(),q=q.toLowerCase();return A.trim()===q.trim()}tokenize(A,q={}){let g;if(q.intlSegmenter){let K=q.intlSegmenter;if(K.resolvedOptions().granularity!="word")throw new Error('The segmenter passed must have a granularity of "word"');g=Array.from(K.segment(A),(Z)=>Z.segment)}else g=A.match(OX)||[];let E=[],F=null;return g.forEach((K)=>{if(/\s/.test(K))if(F==null)E.push(K);else E.push(E.pop()+K);else if(F!=null&&/\s/.test(F))if(E[E.length-1]==F)E.push(E.pop()+K);else E.push(F+K);else E.push(K);F=K}),E}join(A){return A.map((q,g)=>{if(g==0)return q;else return q.replace(/^\s+/,"")}).join("")}postProcess(A,q){if(!A||q.oneChangePerToken)return A;let g=null,E=null,F=null;if(A.forEach((K)=>{if(K.added)E=K;else if(K.removed)F=K;else{if(E||F)OO(g,F,E,K);g=K,E=null,F=null}}),E||F)OO(g,F,E,null);return A}}var ZW=new IO;function OO(A,q,g,E){if(q&&g){let F=Hg(q.value),K=mE(q.value),Z=Hg(g.value),j=mE(g.value);if(A){let U=GO(F,Z);A.value=hU(A.value,Z,U),q.value=vE(q.value,U),g.value=vE(g.value,U)}if(E){let U=YO(K,j);E.value=aU(E.value,j,U),q.value=MZ(q.value,U),g.value=MZ(g.value,U)}}else if(g){if(A){let F=Hg(g.value);g.value=g.value.substring(F.length)}if(E){let F=Hg(E.value);E.value=E.value.substring(F.length)}}else if(A&&E){let F=Hg(E.value),K=Hg(q.value),Z=mE(q.value),j=GO(F,K);q.value=vE(q.value,j);let U=YO(vE(F,j),Z);q.value=MZ(q.value,U),E.value=aU(E.value,F,U),A.value=hU(A.value,F,F.slice(0,F.length-U.length))}else if(E){let F=Hg(E.value),K=mE(q.value),Z=QO(K,F);q.value=MZ(q.value,Z)}else if(A){let F=mE(A.value),K=Hg(q.value),Z=QO(F,K);q.value=vE(q.value,Z)}}class xO extends rq{tokenize(A){let q=new RegExp(`(\\r?\\n)|[${$Z}]+|[^\\S\\n\\r]+|[^${$Z}]`,"ug");return A.match(q)||[]}}var jW=new xO;class PO extends rq{constructor(){super(...arguments);this.tokenize=RO}equals(A,q,g){if(g.ignoreWhitespace){if(!g.newlineIsToken||!A.includes(`
|
|
28
28
|
`))A=A.trim();if(!g.newlineIsToken||!q.includes(`
|
|
29
29
|
`))q=q.trim()}else if(g.ignoreNewlineAtEof&&!g.newlineIsToken){if(A.endsWith(`
|
|
30
30
|
`))A=A.slice(0,-1);if(q.endsWith(`
|
|
31
|
-
`))q=q.slice(0,-1)}return super.equals(A,q,g)}}var
|
|
32
|
-
`);let g=[],E=A.split(/(\n|\r\n)/);if(!E[E.length-1])E.pop();for(let F=0;F<E.length;F++){let K=E[F];if(F%2&&!q.newlineIsToken)g[g.length-1]+=K;else g.push(K)}return g}function w9(A){return A=="."||A=="!"||A=="?"}class uQ extends iq{tokenize(A){var q;let g=[],E=0;for(let F=0;F<A.length;F++){if(F==A.length-1){g.push(A.slice(E));break}if(w9(A[F])&&A[F+1].match(/\s/)){g.push(A.slice(E,F+1)),F=E=F+1;while((q=A[F+1])===null||q===void 0?void 0:q.match(/\s/))F++;g.push(A.slice(E,F+1)),E=F+1}}return g}}var YL=new uQ;class lQ extends iq{tokenize(A){return A.split(/([{}:;,]|\s+)/)}}var QL=new lQ;class iQ extends iq{constructor(){super(...arguments);this.tokenize=pQ}get useLongestToken(){return!0}castInput(A,q){let{undefinedReplacement:g,stringifyReplacer:E=(F,K)=>typeof K>"u"?g:K}=q;return typeof A==="string"?A:JSON.stringify(QU(A,null,null,E),null," ")}equals(A,q,g){return super.equals(A.replace(/,([\r\n])/g,"$1"),q.replace(/,([\r\n])/g,"$1"),g)}}var OL=new iQ;function QU(A,q,g,E,F){if(q=q||[],g=g||[],E)A=E(F===void 0?"":F,A);let K;for(K=0;K<q.length;K+=1)if(q[K]===A)return g[K];let Z;if(Object.prototype.toString.call(A)==="[object Array]"){q.push(A),Z=Array(A.length),g.push(Z);for(K=0;K<A.length;K+=1)Z[K]=QU(A[K],q,g,E,String(K));return q.pop(),g.pop(),Z}if(A&&A.toJSON)A=A.toJSON();if(typeof A==="object"&&A!==null){q.push(A),Z={},g.push(Z);let j=[],U;for(U in A)if(Object.prototype.hasOwnProperty.call(A,U))j.push(U);j.sort();for(K=0;K<j.length;K+=1)U=j[K],Z[U]=QU(A[U],q,g,E,U);q.pop(),g.pop()}else Z=A;return Z}class tQ extends iq{tokenize(A){return A.slice()}join(A){return A}removeEmpty(A){return A}}var JL=new tQ;class o extends yQ{_text;_hasManualStyledText=!1;rootTextNode;_contentDefaultOptions={content:""};constructor(A,q){super(A,q);let g=q.content??this._contentDefaultOptions.content,E=typeof g==="string"?sK(g):g;this._text=E,this._hasManualStyledText=q.content!==void 0&&g!=="",this.rootTextNode=new vQ(A,{id:`${this.id}-root`,fg:this._defaultFg,bg:this._defaultBg,attributes:this._defaultAttributes},this),this.updateTextBuffer(E)}updateTextBuffer(A){this.textBuffer.setStyledText(A),this.clearChunks(A)}clearChunks(A){}get content(){return this._text}get chunks(){return this._text.chunks}get textNode(){return this.rootTextNode}set content(A){this._hasManualStyledText=!0;let q=typeof A==="string"?sK(A):A;if(this._text!==q)this._text=q,this.updateTextBuffer(q),this.updateTextInfo()}updateTextFromNodes(){if(this.rootTextNode.isDirty&&!this._hasManualStyledText){let A=this.rootTextNode.gatherWithInheritedStyle({fg:this._defaultFg,bg:this._defaultBg,attributes:this._defaultAttributes,link:void 0});this.textBuffer.setStyledText(new IE(A)),this.refreshLocalSelection(),this.yogaNode.markDirty()}}add(A,q){return this.rootTextNode.add(A,q)}remove(A){this.rootTextNode.remove(A)}insertBefore(A,q){return this.rootTextNode.insertBefore(A,q),this.rootTextNode.children.indexOf(A)}getTextChildren(){return this.rootTextNode.getChildren()}clear(){this.rootTextNode.clear();let A=sK("");this._text=A,this.updateTextBuffer(A),this.updateTextInfo(),this.requestRender()}onLifecyclePass=()=>{this.updateTextFromNodes()};onFgChanged(A){this.rootTextNode.fg=A}onBgChanged(A){this.rootTextNode.bg=A}onAttributesChanged(A){this.rootTextNode.attributes=A}destroy(){this.rootTextNode.children.length=0,super.destroy()}}class sQ extends kA{_focusable=!0;selectable=!0;_textColor;_backgroundColor;_defaultAttributes;_selectionBg;_selectionFg;_wrapMode="word";_scrollMargin=0.2;_showCursor=!0;_cursorColor;_cursorStyle;lastLocalSelection=null;_tabIndicator;_tabIndicatorColor;_cursorChangeListener=void 0;_contentChangeListener=void 0;_autoScrollVelocity=0;_autoScrollAccumulator=0;_scrollSpeed=16;_keyboardSelectionActive=!1;editBuffer;editorView;_defaultOptions={textColor:QA.fromValues(1,1,1,1),backgroundColor:"transparent",selectionBg:void 0,selectionFg:void 0,selectable:!0,attributes:0,wrapMode:"word",scrollMargin:0.2,scrollSpeed:16,showCursor:!0,cursorColor:QA.fromValues(1,1,1,1),cursorStyle:{style:"block",blinking:!0},tabIndicator:void 0,tabIndicatorColor:void 0};constructor(A,q){super(A,q);if(this._textColor=d(q.textColor??this._defaultOptions.textColor),this._backgroundColor=d(q.backgroundColor??this._defaultOptions.backgroundColor),this._defaultAttributes=q.attributes??this._defaultOptions.attributes,this._selectionBg=q.selectionBg?d(q.selectionBg):this._defaultOptions.selectionBg,this._selectionFg=q.selectionFg?d(q.selectionFg):this._defaultOptions.selectionFg,this.selectable=q.selectable??this._defaultOptions.selectable,this._wrapMode=q.wrapMode??this._defaultOptions.wrapMode,this._scrollMargin=q.scrollMargin??this._defaultOptions.scrollMargin,this._scrollSpeed=q.scrollSpeed??this._defaultOptions.scrollSpeed,this._showCursor=q.showCursor??this._defaultOptions.showCursor,this._cursorColor=d(q.cursorColor??this._defaultOptions.cursorColor),this._cursorStyle=q.cursorStyle??this._defaultOptions.cursorStyle,this._tabIndicator=q.tabIndicator??this._defaultOptions.tabIndicator,this._tabIndicatorColor=q.tabIndicatorColor?d(q.tabIndicatorColor):this._defaultOptions.tabIndicatorColor,this.editBuffer=lq.create(this._ctx.widthMethod),this.editorView=$U.create(this.editBuffer,this.width||80,this.height||24),this.editorView.setWrapMode(this._wrapMode),this.editorView.setScrollMargin(this._scrollMargin),this.editBuffer.setDefaultFg(this._textColor),this.editBuffer.setDefaultBg(this._backgroundColor),this.editBuffer.setDefaultAttributes(this._defaultAttributes),q.syntaxStyle)this.editBuffer.setSyntaxStyle(q.syntaxStyle);if(this._tabIndicator!==void 0)this.editorView.setTabIndicator(this._tabIndicator);if(this._tabIndicatorColor!==void 0)this.editorView.setTabIndicatorColor(this._tabIndicatorColor);this.setupMeasureFunc(),this.setupEventListeners(q)}get lineInfo(){return this.editorView.getLogicalLineInfo()}setupEventListeners(A){this._cursorChangeListener=A.onCursorChange,this._contentChangeListener=A.onContentChange,this.editBuffer.on("cursor-changed",()=>{if(this._cursorChangeListener){let q=this.editBuffer.getCursorPosition();this._cursorChangeListener({line:q.row,visualColumn:q.col})}}),this.editBuffer.on("content-changed",()=>{if(this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change"),this._contentChangeListener)this._contentChangeListener({})})}get lineCount(){return this.editBuffer.getLineCount()}get virtualLineCount(){return this.editorView.getVirtualLineCount()}get scrollY(){return this.editorView.getViewport().offsetY}get plainText(){return this.editBuffer.getText()}get logicalCursor(){return this.editBuffer.getCursorPosition()}get visualCursor(){return this.editorView.getVisualCursor()}get cursorOffset(){return this.editorView.getVisualCursor().offset}set cursorOffset(A){this.editorView.setCursorByOffset(A),this.requestRender()}get textColor(){return this._textColor}set textColor(A){let q=d(A??this._defaultOptions.textColor);if(this._textColor!==q)this._textColor=q,this.editBuffer.setDefaultFg(q),this.requestRender()}get selectionBg(){return this._selectionBg}set selectionBg(A){let q=A?d(A):this._defaultOptions.selectionBg;if(this._selectionBg!==q){if(this._selectionBg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get selectionFg(){return this._selectionFg}set selectionFg(A){let q=A?d(A):this._defaultOptions.selectionFg;if(this._selectionFg!==q){if(this._selectionFg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){let q=d(A??this._defaultOptions.backgroundColor);if(this._backgroundColor!==q)this._backgroundColor=q,this.editBuffer.setDefaultBg(q),this.requestRender()}get attributes(){return this._defaultAttributes}set attributes(A){if(this._defaultAttributes!==A)this._defaultAttributes=A,this.editBuffer.setDefaultAttributes(A),this.requestRender()}get wrapMode(){return this._wrapMode}set wrapMode(A){if(this._wrapMode!==A)this._wrapMode=A,this.editorView.setWrapMode(A),this.yogaNode.markDirty(),this.requestRender()}get showCursor(){return this._showCursor}set showCursor(A){if(this._showCursor!==A){if(this._showCursor=A,!A&&this._focused)this._ctx.setCursorPosition(0,0,!1);this.requestRender()}}get cursorColor(){return this._cursorColor}set cursorColor(A){let q=d(A);if(this._cursorColor!==q){if(this._cursorColor=q,this._focused)this.requestRender()}}get cursorStyle(){return this._cursorStyle}set cursorStyle(A){let q=A;if(this.cursorStyle.style!==q.style||this.cursorStyle.blinking!==q.blinking){if(this._cursorStyle=q,this._focused)this.requestRender()}}get tabIndicator(){return this._tabIndicator}set tabIndicator(A){if(this._tabIndicator!==A){if(this._tabIndicator=A,A!==void 0)this.editorView.setTabIndicator(A);this.requestRender()}}get tabIndicatorColor(){return this._tabIndicatorColor}set tabIndicatorColor(A){let q=A?d(A):void 0;if(this._tabIndicatorColor!==q){if(this._tabIndicatorColor=q,q!==void 0)this.editorView.setTabIndicatorColor(q);this.requestRender()}}get scrollSpeed(){return this._scrollSpeed}set scrollSpeed(A){this._scrollSpeed=Math.max(0,A)}onMouseEvent(A){if(A.type==="scroll")this.handleScroll(A)}handleScroll(A){if(!A.scroll)return;let{direction:q,delta:g}=A.scroll,E=this.editorView.getViewport();if(q==="up"){let F=Math.max(0,E.offsetY-g);this.editorView.setViewport(E.offsetX,F,E.width,E.height,!0),this.requestRender()}else if(q==="down"){let F=this.editorView.getTotalVirtualLineCount(),K=Math.max(0,F-E.height),Z=Math.min(E.offsetY+g,K);this.editorView.setViewport(E.offsetX,Z,E.width,E.height,!0),this.requestRender()}if(this._wrapMode==="none"){if(q==="left"){let F=Math.max(0,E.offsetX-g);this.editorView.setViewport(F,E.offsetY,E.width,E.height,!0),this.requestRender()}else if(q==="right"){let F=E.offsetX+g;this.editorView.setViewport(F,E.offsetY,E.width,E.height,!0),this.requestRender()}}}onResize(A,q){this.editorView.setViewportSize(A,q)}refreshLocalSelection(){if(this.lastLocalSelection)return this.updateLocalSelection(this.lastLocalSelection);return!1}updateLocalSelection(A){if(!A?.isActive)return this.editorView.resetLocalSelection(),!0;return this.editorView.setLocalSelection(A.anchorX,A.anchorY,A.focusX,A.focusY,this._selectionBg,this._selectionFg,!1)}shouldStartSelection(A,q){if(!this.selectable)return!1;let g=A-this.x,E=q-this.y;return g>=0&&g<this.width&&E>=0&&E<this.height}onSelectionChanged(A){let q=rj(A,this.x,this.y);this.lastLocalSelection=q;let g=!0,E=this._keyboardSelectionActive,F;if(!q?.isActive)this._keyboardSelectionActive=!1,this.editorView.resetLocalSelection(),F=!0;else if(A?.isStart)F=this.editorView.setLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg,g,E);else F=this.editorView.updateLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg,g,E);if(F&&q?.isActive&&A?.isSelecting){let K=this.editorView.getViewport(),Z=q.focusY,j=Math.max(1,Math.floor(K.height*this._scrollMargin));if(Z<j)this._autoScrollVelocity=-this._scrollSpeed;else if(Z>=K.height-j)this._autoScrollVelocity=this._scrollSpeed;else this._autoScrollVelocity=0}else this._keyboardSelectionActive=!1,this._autoScrollVelocity=0,this._autoScrollAccumulator=0;if(F)this.requestRender();return this.hasSelection()}onUpdate(A){if(super.onUpdate(A),this._autoScrollVelocity!==0&&this.hasSelection()){let q=A/1000;this._autoScrollAccumulator+=this._autoScrollVelocity*q;let g=Math.floor(Math.abs(this._autoScrollAccumulator));if(g>0){let E=this._autoScrollVelocity>0?1:-1,F=this.editorView.getViewport(),K=this.editorView.getTotalVirtualLineCount(),Z=Math.max(0,K-F.height),j=Math.max(0,Math.min(F.offsetY+E*g,Z));if(j!==F.offsetY)this.editorView.setViewport(F.offsetX,j,F.width,F.height,!1),this._ctx.requestSelectionUpdate();this._autoScrollAccumulator-=E*g}}}getSelectedText(){return this.editorView.getSelectedText()}hasSelection(){return this.editorView.hasSelection()}getSelection(){return this.editorView.getSelection()}setupMeasureFunc(){let A=(q,g,E,F)=>{let K;if(g===cq.Undefined||isNaN(q))K=0;else K=q;let Z=isNaN(E)?1:E,j=this.editorView.measureForDimensions(Math.floor(K),Math.floor(Z)),U=j?Math.max(1,j.maxWidth):1,O=j?Math.max(1,j.lineCount):1;if(g===cq.AtMost&&this._positionType!=="absolute")return{width:Math.min(K,U),height:Math.min(Z,O)};return{width:U,height:O}};this.yogaNode.setMeasureFunc(A)}render(A,q){if(!this.visible)return;if(this.isDestroyed)return;this.markClean(),this._ctx.addToHitGrid(this.x,this.y,this.width,this.height,this.num),this.renderSelf(A),this.renderCursor(A)}renderSelf(A){A.drawEditorView(this.editorView,this.x,this.y)}renderCursor(A){if(!this._showCursor||!this._focused)return;let q=this.editorView.getVisualCursor(),g=this.x+q.visualCol+1,E=this.y+q.visualRow+1;this._ctx.setCursorPosition(g,E,!0),this._ctx.setCursorColor(this._cursorColor),this._ctx.setCursorStyle(this._cursorStyle.style,this._cursorStyle.blinking)}focus(){super.focus(),this._ctx.setCursorStyle(this._cursorStyle.style,this._cursorStyle.blinking),this._ctx.setCursorColor(this._cursorColor),this.requestRender()}blur(){super.blur(),this._ctx.setCursorPosition(0,0,!1),this.requestRender()}onRemove(){if(this._focused)this._ctx.setCursorPosition(0,0,!1)}destroy(){if(this.isDestroyed)return;if(this._focused)this._ctx.setCursorPosition(0,0,!1),this.blur();this.editorView.destroy(),this.editBuffer.destroy(),super.destroy()}set onCursorChange(A){this._cursorChangeListener=A}get onCursorChange(){return this._cursorChangeListener}set onContentChange(A){this._contentChangeListener=A}get onContentChange(){return this._contentChangeListener}get syntaxStyle(){return this.editBuffer.getSyntaxStyle()}set syntaxStyle(A){this.editBuffer.setSyntaxStyle(A),this.requestRender()}addHighlight(A,q){this.editBuffer.addHighlight(A,q),this.requestRender()}addHighlightByCharRange(A){this.editBuffer.addHighlightByCharRange(A),this.requestRender()}removeHighlightsByRef(A){this.editBuffer.removeHighlightsByRef(A),this.requestRender()}clearLineHighlights(A){this.editBuffer.clearLineHighlights(A),this.requestRender()}clearAllHighlights(){this.editBuffer.clearAllHighlights(),this.requestRender()}getLineHighlights(A){return this.editBuffer.getLineHighlights(A)}setText(A){this.editBuffer.setText(A),this.yogaNode.markDirty(),this.requestRender()}replaceText(A){this.editBuffer.replaceText(A),this.yogaNode.markDirty(),this.requestRender()}clear(){this.editBuffer.clear(),this.editBuffer.clearAllHighlights(),this.yogaNode.markDirty(),this.requestRender()}deleteRange(A,q,g,E){this.editBuffer.deleteRange(A,q,g,E),this.yogaNode.markDirty(),this.requestRender()}insertText(A){this.editBuffer.insertText(A),this.yogaNode.markDirty(),this.requestRender()}getTextRange(A,q){return this.editBuffer.getTextRange(A,q)}getTextRangeByCoords(A,q,g,E){return this.editBuffer.getTextRangeByCoords(A,q,g,E)}updateSelectionForMovement(A,q){if(!this.selectable)return;if(!A){this._keyboardSelectionActive=!1,this._ctx.clearSelection();return}this._keyboardSelectionActive=!0;let g=this.editorView.getVisualCursor(),E=this.x+g.visualCol,F=this.y+g.visualRow;if(q){if(!this._ctx.hasSelection)this._ctx.startSelection(this,E,F);return}this._ctx.updateSelection(this,E,F)}}var UU=[{name:"left",action:"move-left"},{name:"right",action:"move-right"},{name:"up",action:"move-up"},{name:"down",action:"move-down"},{name:"left",shift:!0,action:"select-left"},{name:"right",shift:!0,action:"select-right"},{name:"up",shift:!0,action:"select-up"},{name:"down",shift:!0,action:"select-down"},{name:"home",action:"buffer-home"},{name:"end",action:"buffer-end"},{name:"home",shift:!0,action:"select-buffer-home"},{name:"end",shift:!0,action:"select-buffer-end"},{name:"a",ctrl:!0,action:"line-home"},{name:"e",ctrl:!0,action:"line-end"},{name:"a",ctrl:!0,shift:!0,action:"select-line-home"},{name:"e",ctrl:!0,shift:!0,action:"select-line-end"},{name:"a",meta:!0,action:"visual-line-home"},{name:"e",meta:!0,action:"visual-line-end"},{name:"a",meta:!0,shift:!0,action:"select-visual-line-home"},{name:"e",meta:!0,shift:!0,action:"select-visual-line-end"},{name:"f",ctrl:!0,action:"move-right"},{name:"b",ctrl:!0,action:"move-left"},{name:"w",ctrl:!0,action:"delete-word-backward"},{name:"backspace",ctrl:!0,action:"delete-word-backward"},{name:"d",meta:!0,action:"delete-word-forward"},{name:"delete",meta:!0,action:"delete-word-forward"},{name:"delete",ctrl:!0,action:"delete-word-forward"},{name:"d",ctrl:!0,shift:!0,action:"delete-line"},{name:"k",ctrl:!0,action:"delete-to-line-end"},{name:"u",ctrl:!0,action:"delete-to-line-start"},{name:"backspace",action:"backspace"},{name:"backspace",shift:!0,action:"backspace"},{name:"d",ctrl:!0,action:"delete"},{name:"delete",action:"delete"},{name:"delete",shift:!0,action:"delete"},{name:"return",action:"newline"},{name:"linefeed",action:"newline"},{name:"return",meta:!0,action:"submit"},{name:"-",ctrl:!0,action:"undo"},{name:".",ctrl:!0,action:"redo"},{name:"z",super:!0,action:"undo"},{name:"z",super:!0,shift:!0,action:"redo"},{name:"f",meta:!0,action:"word-forward"},{name:"b",meta:!0,action:"word-backward"},{name:"right",meta:!0,action:"word-forward"},{name:"left",meta:!0,action:"word-backward"},{name:"right",ctrl:!0,action:"word-forward"},{name:"left",ctrl:!0,action:"word-backward"},{name:"f",meta:!0,shift:!0,action:"select-word-forward"},{name:"b",meta:!0,shift:!0,action:"select-word-backward"},{name:"right",meta:!0,shift:!0,action:"select-word-forward"},{name:"left",meta:!0,shift:!0,action:"select-word-backward"},{name:"backspace",meta:!0,action:"delete-word-backward"},{name:"left",super:!0,action:"visual-line-home"},{name:"right",super:!0,action:"visual-line-end"},{name:"up",super:!0,action:"buffer-home"},{name:"down",super:!0,action:"buffer-end"},{name:"left",super:!0,shift:!0,action:"select-visual-line-home"},{name:"right",super:!0,shift:!0,action:"select-visual-line-end"},{name:"up",super:!0,shift:!0,action:"select-buffer-home"},{name:"down",super:!0,shift:!0,action:"select-buffer-end"}];class xq extends sQ{_placeholder;_placeholderColor;_unfocusedBackgroundColor;_unfocusedTextColor;_focusedBackgroundColor;_focusedTextColor;_keyBindingsMap;_keyAliasMap;_keyBindings;_actionHandlers;_initialValueSet=!1;_submitListener=void 0;static defaults={backgroundColor:"transparent",textColor:"#FFFFFF",focusedBackgroundColor:"transparent",focusedTextColor:"#FFFFFF",placeholder:null,placeholderColor:"#666666"};constructor(A,q){let g=xq.defaults,E={...q,backgroundColor:q.backgroundColor||g.backgroundColor,textColor:q.textColor||g.textColor};super(A,E);this._unfocusedBackgroundColor=d(q.backgroundColor||g.backgroundColor),this._unfocusedTextColor=d(q.textColor||g.textColor),this._focusedBackgroundColor=d(q.focusedBackgroundColor||q.backgroundColor||g.focusedBackgroundColor),this._focusedTextColor=d(q.focusedTextColor||q.textColor||g.focusedTextColor),this._placeholder=q.placeholder??g.placeholder,this._placeholderColor=d(q.placeholderColor??g.placeholderColor),this._keyAliasMap=TE(xE,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[];let F=mg(UU,this._keyBindings);if(this._keyBindingsMap=fg(F,this._keyAliasMap),this._actionHandlers=this.buildActionHandlers(),this._submitListener=q.onSubmit,q.initialValue)this.setText(q.initialValue),this._initialValueSet=!0;this.updateColors(),this.applyPlaceholder(this._placeholder)}applyPlaceholder(A){if(A===null){this.editorView.setPlaceholderStyledText([]);return}if(typeof A==="string"){let g=[rY(this._placeholderColor)(A)];this.editorView.setPlaceholderStyledText(g)}else this.editorView.setPlaceholderStyledText(A.chunks)}buildActionHandlers(){return new Map([["move-left",()=>this.moveCursorLeft()],["move-right",()=>this.moveCursorRight()],["move-up",()=>this.moveCursorUp()],["move-down",()=>this.moveCursorDown()],["select-left",()=>this.moveCursorLeft({select:!0})],["select-right",()=>this.moveCursorRight({select:!0})],["select-up",()=>this.moveCursorUp({select:!0})],["select-down",()=>this.moveCursorDown({select:!0})],["line-home",()=>this.gotoLineHome()],["line-end",()=>this.gotoLineEnd()],["select-line-home",()=>this.gotoLineHome({select:!0})],["select-line-end",()=>this.gotoLineEnd({select:!0})],["visual-line-home",()=>this.gotoVisualLineHome()],["visual-line-end",()=>this.gotoVisualLineEnd()],["select-visual-line-home",()=>this.gotoVisualLineHome({select:!0})],["select-visual-line-end",()=>this.gotoVisualLineEnd({select:!0})],["select-buffer-home",()=>this.gotoBufferHome({select:!0})],["select-buffer-end",()=>this.gotoBufferEnd({select:!0})],["buffer-home",()=>this.gotoBufferHome()],["buffer-end",()=>this.gotoBufferEnd()],["delete-line",()=>this.deleteLine()],["delete-to-line-end",()=>this.deleteToLineEnd()],["delete-to-line-start",()=>this.deleteToLineStart()],["backspace",()=>this.deleteCharBackward()],["delete",()=>this.deleteChar()],["newline",()=>this.newLine()],["undo",()=>this.undo()],["redo",()=>this.redo()],["word-forward",()=>this.moveWordForward()],["word-backward",()=>this.moveWordBackward()],["select-word-forward",()=>this.moveWordForward({select:!0})],["select-word-backward",()=>this.moveWordBackward({select:!0})],["delete-word-forward",()=>this.deleteWordForward()],["delete-word-backward",()=>this.deleteWordBackward()],["submit",()=>this.submit()]])}handlePaste(A){this.insertText(A.text)}handleKeyPress(A){let q=cg({name:A.name,ctrl:A.ctrl,shift:A.shift,meta:A.meta,super:A.super,action:"move-left"}),g=this._keyBindingsMap.get(q);if(g){let E=this._actionHandlers.get(g);if(E)return E()}if(!A.ctrl&&!A.meta&&!A.super&&!A.hyper){if(A.name==="space")return this.insertText(" "),!0;if(A.sequence){let E=A.sequence.charCodeAt(0);if(E<32)return!1;if(E===127)return!1;return this.insertText(A.sequence),!0}}return!1}updateColors(){let A=this._focused?this._focusedBackgroundColor:this._unfocusedBackgroundColor,q=this._focused?this._focusedTextColor:this._unfocusedTextColor;super.backgroundColor=A,super.textColor=q}insertChar(A){if(this.hasSelection())this.deleteSelectedText();this.editBuffer.insertChar(A),this.requestRender()}insertText(A){if(this.hasSelection())this.deleteSelectedText();this.editBuffer.insertText(A),this.requestRender()}deleteChar(){if(this.hasSelection())return this.deleteSelectedText(),!0;return this._ctx.clearSelection(),this.editBuffer.deleteChar(),this.requestRender(),!0}deleteCharBackward(){if(this.hasSelection())return this.deleteSelectedText(),!0;return this._ctx.clearSelection(),this.editBuffer.deleteCharBackward(),this.requestRender(),!0}deleteSelectedText(){this.editorView.deleteSelectedText(),this._ctx.clearSelection(),this.requestRender()}newLine(){return this._ctx.clearSelection(),this.editBuffer.newLine(),this.requestRender(),!0}deleteLine(){return this._ctx.clearSelection(),this.editBuffer.deleteLine(),this.requestRender(),!0}moveCursorLeft(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editBuffer.moveCursorLeft(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveCursorRight(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editBuffer.moveCursorRight(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveCursorUp(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editorView.moveUpVisual(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveCursorDown(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editorView.moveDownVisual(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoLine(A){this.editBuffer.gotoLine(A),this.requestRender()}gotoLineHome(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getCursor();if(g.col===0&&g.row>0){this.editBuffer.setCursor(g.row-1,0);let E=this.editBuffer.getEOL();this.editBuffer.setCursor(E.row,E.col)}else this.editBuffer.setCursor(g.row,0);return this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoLineEnd(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getCursor(),E=this.editBuffer.getEOL(),F=this.editBuffer.getLineCount();if(g.col===E.col&&g.row<F-1)this.editBuffer.setCursor(g.row+1,0);else this.editBuffer.setCursor(E.row,E.col);return this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoVisualLineHome(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getVisualSOL();return this.editBuffer.setCursor(g.logicalRow,g.logicalCol),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoVisualLineEnd(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getVisualEOL();return this.editBuffer.setCursor(g.logicalRow,g.logicalCol),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoBufferHome(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editBuffer.setCursor(0,0),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoBufferEnd(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editBuffer.gotoLine(999999),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}deleteToLineEnd(){let A=this.editorView.getCursor(),q=this.editBuffer.getEOL();if(q.col>A.col)this.editBuffer.deleteRange(A.row,A.col,q.row,q.col);return this.requestRender(),!0}deleteToLineStart(){let A=this.editorView.getCursor();if(A.col>0)this.editBuffer.deleteRange(A.row,0,A.row,A.col);return this.requestRender(),!0}undo(){return this._ctx.clearSelection(),this.editBuffer.undo(),this.requestRender(),!0}redo(){return this._ctx.clearSelection(),this.editBuffer.redo(),this.requestRender(),!0}moveWordForward(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editBuffer.getNextWordBoundary();return this.editBuffer.setCursorByOffset(g.offset),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveWordBackward(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editBuffer.getPrevWordBoundary();return this.editBuffer.setCursorByOffset(g.offset),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}deleteWordForward(){if(this.hasSelection())return this.deleteSelectedText(),!0;let A=this.editBuffer.getCursorPosition(),q=this.editBuffer.getNextWordBoundary();if(q.offset>A.offset)this.editBuffer.deleteRange(A.row,A.col,q.row,q.col);return this._ctx.clearSelection(),this.requestRender(),!0}deleteWordBackward(){if(this.hasSelection())return this.deleteSelectedText(),!0;let A=this.editBuffer.getCursorPosition(),q=this.editBuffer.getPrevWordBoundary();if(q.offset<A.offset)this.editBuffer.deleteRange(q.row,q.col,A.row,A.col);return this._ctx.clearSelection(),this.requestRender(),!0}focus(){super.focus(),this.updateColors()}blur(){if(super.blur(),!this.isDestroyed)this.updateColors()}get placeholder(){return this._placeholder}set placeholder(A){if(this._placeholder!==A)this._placeholder=A,this.applyPlaceholder(A),this.requestRender()}get placeholderColor(){return this._placeholderColor}set placeholderColor(A){let q=d(A??xq.defaults.placeholderColor);if(this._placeholderColor!==q)this._placeholderColor=q,this.applyPlaceholder(this._placeholder),this.requestRender()}get backgroundColor(){return this._unfocusedBackgroundColor}set backgroundColor(A){let q=d(A??xq.defaults.backgroundColor);if(this._unfocusedBackgroundColor!==q)this._unfocusedBackgroundColor=q,this.updateColors()}get textColor(){return this._unfocusedTextColor}set textColor(A){let q=d(A??xq.defaults.textColor);if(this._unfocusedTextColor!==q)this._unfocusedTextColor=q,this.updateColors()}set focusedBackgroundColor(A){let q=d(A??xq.defaults.focusedBackgroundColor);if(this._focusedBackgroundColor!==q)this._focusedBackgroundColor=q,this.updateColors()}set focusedTextColor(A){let q=d(A??xq.defaults.focusedTextColor);if(this._focusedTextColor!==q)this._focusedTextColor=q,this.updateColors()}set initialValue(A){if(!this._initialValueSet)this.setText(A),this._initialValueSet=!0}submit(){if(this._submitListener)this._submitListener({});return!0}set onSubmit(A){this._submitListener=A}get onSubmit(){return this._submitListener}set keyBindings(A){this._keyBindings=A;let q=mg(UU,A);this._keyBindingsMap=fg(q,this._keyAliasMap)}set keyAliasMap(A){this._keyAliasMap=TE(xE,A);let q=mg(UU,this._keyBindings);this._keyBindingsMap=fg(q,this._keyAliasMap)}get extmarks(){return this.editorView.extmarks}}var C9;((A)=>{A.INPUT="input",A.CHANGE="change",A.ENTER="enter"})(C9||={});class ZZ extends xq{_maxLength;_lastCommittedValue="";static defaultOptions={placeholder:"",maxLength:1000,value:""};constructor(A,q){let g=ZZ.defaultOptions,E=q.maxLength??g.maxLength,K=(q.value??g.value).replace(/[\n\r]/g,"").substring(0,E);super(A,{...q,placeholder:q.placeholder??g.placeholder,initialValue:K,height:1,wrapMode:"none",keyBindings:[{name:"return",action:"submit"},{name:"linefeed",action:"submit"},...q.keyBindings||[]]});if(this._maxLength=E,this._lastCommittedValue=this.plainText,K)this.cursorOffset=K.length}newLine(){return!1}handlePaste(A){let q=A.text.replace(/[\n\r]/g,"");if(q)this.insertText(q)}insertText(A){let q=A.replace(/[\n\r]/g,"");if(!q)return;let g=this.plainText.length,E=this._maxLength-g;if(E<=0)return;let F=q.substring(0,E);super.insertText(F),this.emit("input",this.plainText)}get value(){return this.plainText}set value(A){let q=A.substring(0,this._maxLength).replace(/[\n\r]/g,"");if(this.plainText!==q)this.setText(q),this.cursorOffset=q.length,this.emit("input",q)}focus(){super.focus(),this._lastCommittedValue=this.plainText}blur(){if(!this.isDestroyed){let A=this.plainText;if(A!==this._lastCommittedValue)this._lastCommittedValue=A,this.emit("change",A)}super.blur()}submit(){let A=this.plainText;if(A!==this._lastCommittedValue)this._lastCommittedValue=A,this.emit("change",A);return this.emit("enter",A),!0}deleteCharBackward(){let A=super.deleteCharBackward();return this.emit("input",this.plainText),A}deleteChar(){let A=super.deleteChar();return this.emit("input",this.plainText),A}deleteCharacter(A){if(A==="backward")this.deleteCharBackward();else this.deleteChar()}set maxLength(A){this._maxLength=A;let q=this.plainText;if(q.length>A)this.setText(q.substring(0,A))}get maxLength(){return this._maxLength}set placeholder(A){super.placeholder=A}get placeholder(){let A=super.placeholder;return typeof A==="string"?A:""}set initialValue(A){}}function XU(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var ug=XU();function nQ(A){ug=A}var wE={exec:()=>null};function UA(A,q=""){let g=typeof A=="string"?A:A.source,E={replace:(F,K)=>{let Z=typeof K=="string"?K:K.source;return Z=Z.replace(fA.caret,"$1"),g=g.replace(F,Z),E},getRegex:()=>new RegExp(g,q)};return E}var k9=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),fA={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:(A)=>new RegExp(`^( {0,3}${A})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}#`),htmlBeginRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}<(?:[a-z].*>|!--)`,"i")},D9=/^(?:[ \t]*(?:\n|$))+/,y9=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,b9=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,kE=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,v9=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,HU=/(?:[*+-]|\d{1,9}[.)])/,rQ=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,oQ=UA(rQ).replace(/bull/g,HU).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),m9=UA(rQ).replace(/bull/g,HU).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),LU=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,f9=/^[^\n]+/,VU=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,c9=UA(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",VU).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),d9=UA(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,HU).getRegex(),jZ="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",WU=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,p9=UA("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$))","i").replace("comment",WU).replace("tag",jZ).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),eQ=UA(LU).replace("hr",kE).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",jZ).getRegex(),u9=UA(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",eQ).getRegex(),NU={blockquote:u9,code:y9,def:c9,fences:b9,heading:v9,hr:kE,html:p9,lheading:oQ,list:d9,newline:D9,paragraph:eQ,table:wE,text:f9},hQ=UA("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",kE).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3}\t)[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",jZ).getRegex(),l9={...NU,lheading:m9,table:hQ,paragraph:UA(LU).replace("hr",kE).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",hQ).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",jZ).getRegex()},i9={...NU,html:UA(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",WU).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:wE,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:UA(LU).replace("hr",kE).replace("heading",` *#{1,6} *[^
|
|
33
|
-
]`).replace("lheading",
|
|
31
|
+
`))q=q.slice(0,-1)}return super.equals(A,q,g)}}var UW=new PO;function RO(A,q){if(q.stripTrailingCr)A=A.replace(/\r\n/g,`
|
|
32
|
+
`);let g=[],E=A.split(/(\n|\r\n)/);if(!E[E.length-1])E.pop();for(let F=0;F<E.length;F++){let K=E[F];if(F%2&&!q.newlineIsToken)g[g.length-1]+=K;else g.push(K)}return g}function JX(A){return A=="."||A=="!"||A=="?"}class SO extends rq{tokenize(A){var q;let g=[],E=0;for(let F=0;F<A.length;F++){if(F==A.length-1){g.push(A.slice(E));break}if(JX(A[F])&&A[F+1].match(/\s/)){g.push(A.slice(E,F+1)),F=E=F+1;while((q=A[F+1])===null||q===void 0?void 0:q.match(/\s/))F++;g.push(A.slice(E,F+1)),E=F+1}}return g}}var GW=new SO;class aO extends rq{tokenize(A){return A.split(/([{}:;,]|\s+)/)}}var YW=new aO;class hO extends rq{constructor(){super(...arguments);this.tokenize=RO}get useLongestToken(){return!0}castInput(A,q){let{undefinedReplacement:g,stringifyReplacer:E=(F,K)=>typeof K==="undefined"?g:K}=q;return typeof A==="string"?A:JSON.stringify(zU(A,null,null,E),null," ")}equals(A,q,g){return super.equals(A.replace(/,([\r\n])/g,"$1"),q.replace(/,([\r\n])/g,"$1"),g)}}var QW=new hO;function zU(A,q,g,E,F){if(q=q||[],g=g||[],E)A=E(F===void 0?"":F,A);let K;for(K=0;K<q.length;K+=1)if(q[K]===A)return g[K];let Z;if(Object.prototype.toString.call(A)==="[object Array]"){q.push(A),Z=new Array(A.length),g.push(Z);for(K=0;K<A.length;K+=1)Z[K]=zU(A[K],q,g,E,String(K));return q.pop(),g.pop(),Z}if(A&&A.toJSON)A=A.toJSON();if(typeof A==="object"&&A!==null){q.push(A),Z={},g.push(Z);let j=[],U;for(U in A)if(Object.prototype.hasOwnProperty.call(A,U))j.push(U);j.sort();for(K=0;K<j.length;K+=1)U=j[K],Z[U]=zU(A[U],q,g,E,U);q.pop(),g.pop()}else Z=A;return Z}class zO extends rq{tokenize(A){return A.slice()}join(A){return A}removeEmpty(A){return A}}var OW=new zO;class m extends VO{_text;_hasManualStyledText=!1;rootTextNode;_contentDefaultOptions={content:""};constructor(A,q){super(A,q);let g=q.content??this._contentDefaultOptions.content,E=typeof g==="string"?GZ(g):g;this._text=E,this._hasManualStyledText=q.content!==void 0&&g!=="",this.rootTextNode=new NO(A,{id:`${this.id}-root`,fg:this._defaultFg,bg:this._defaultBg,attributes:this._defaultAttributes},this),this.updateTextBuffer(E)}updateTextBuffer(A){this.textBuffer.setStyledText(A),this.clearChunks(A)}clearChunks(A){}get content(){return this._text}get chunks(){return this._text.chunks}get textNode(){return this.rootTextNode}set content(A){this._hasManualStyledText=!0;let q=typeof A==="string"?GZ(A):A;if(this._text!==q)this._text=q,this.updateTextBuffer(q),this.updateTextInfo()}updateTextFromNodes(){if(this.rootTextNode.isDirty&&!this._hasManualStyledText){let A=this.rootTextNode.gatherWithInheritedStyle({fg:this._defaultFg,bg:this._defaultBg,attributes:this._defaultAttributes,link:void 0});this.textBuffer.setStyledText(new b6(A)),this.refreshLocalSelection(),this.yogaNode.markDirty()}}add(A,q){return this.rootTextNode.add(A,q)}remove(A){this.rootTextNode.remove(A)}insertBefore(A,q){return this.rootTextNode.insertBefore(A,q),this.rootTextNode.children.indexOf(A)}getTextChildren(){return this.rootTextNode.getChildren()}clear(){this.rootTextNode.clear();let A=GZ("");this._text=A,this.updateTextBuffer(A),this.updateTextInfo(),this.requestRender()}onLifecyclePass=()=>{this.updateTextFromNodes()};onFgChanged(A){this.rootTextNode.fg=A}onBgChanged(A){this.rootTextNode.bg=A}onAttributesChanged(A){this.rootTextNode.attributes=A}destroy(){this.rootTextNode.children.length=0,super.destroy()}}class BO extends DA{_focusable=!0;selectable=!0;_textColor;_backgroundColor;_defaultAttributes;_selectionBg;_selectionFg;_wrapMode="word";_scrollMargin=0.2;_showCursor=!0;_cursorColor;_cursorStyle;lastLocalSelection=null;_tabIndicator;_tabIndicatorColor;_cursorChangeListener=void 0;_contentChangeListener=void 0;_autoScrollVelocity=0;_autoScrollAccumulator=0;_scrollSpeed=16;_keyboardSelectionActive=!1;editBuffer;editorView;_defaultOptions={textColor:OA.fromValues(1,1,1,1),backgroundColor:"transparent",selectionBg:void 0,selectionFg:void 0,selectable:!0,attributes:0,wrapMode:"word",scrollMargin:0.2,scrollSpeed:16,showCursor:!0,cursorColor:OA.fromValues(1,1,1,1),cursorStyle:{style:"block",blinking:!0},tabIndicator:void 0,tabIndicatorColor:void 0};constructor(A,q){super(A,q);if(this._textColor=u(q.textColor??this._defaultOptions.textColor),this._backgroundColor=u(q.backgroundColor??this._defaultOptions.backgroundColor),this._defaultAttributes=q.attributes??this._defaultOptions.attributes,this._selectionBg=q.selectionBg?u(q.selectionBg):this._defaultOptions.selectionBg,this._selectionFg=q.selectionFg?u(q.selectionFg):this._defaultOptions.selectionFg,this.selectable=q.selectable??this._defaultOptions.selectable,this._wrapMode=q.wrapMode??this._defaultOptions.wrapMode,this._scrollMargin=q.scrollMargin??this._defaultOptions.scrollMargin,this._scrollSpeed=q.scrollSpeed??this._defaultOptions.scrollSpeed,this._showCursor=q.showCursor??this._defaultOptions.showCursor,this._cursorColor=u(q.cursorColor??this._defaultOptions.cursorColor),this._cursorStyle=q.cursorStyle??this._defaultOptions.cursorStyle,this._tabIndicator=q.tabIndicator??this._defaultOptions.tabIndicator,this._tabIndicatorColor=q.tabIndicatorColor?u(q.tabIndicatorColor):this._defaultOptions.tabIndicatorColor,this.editBuffer=nq.create(this._ctx.widthMethod),this.editorView=DU.create(this.editBuffer,this.width||80,this.height||24),this.editorView.setWrapMode(this._wrapMode),this.editorView.setScrollMargin(this._scrollMargin),this.editBuffer.setDefaultFg(this._textColor),this.editBuffer.setDefaultBg(this._backgroundColor),this.editBuffer.setDefaultAttributes(this._defaultAttributes),q.syntaxStyle)this.editBuffer.setSyntaxStyle(q.syntaxStyle);if(this._tabIndicator!==void 0)this.editorView.setTabIndicator(this._tabIndicator);if(this._tabIndicatorColor!==void 0)this.editorView.setTabIndicatorColor(this._tabIndicatorColor);this.setupMeasureFunc(),this.setupEventListeners(q)}get lineInfo(){return this.editorView.getLogicalLineInfo()}setupEventListeners(A){this._cursorChangeListener=A.onCursorChange,this._contentChangeListener=A.onContentChange,this.editBuffer.on("cursor-changed",()=>{if(this._cursorChangeListener){let q=this.editBuffer.getCursorPosition();this._cursorChangeListener({line:q.row,visualColumn:q.col})}}),this.editBuffer.on("content-changed",()=>{if(this.yogaNode.markDirty(),this.requestRender(),this.emit("line-info-change"),this._contentChangeListener)this._contentChangeListener({})})}get lineCount(){return this.editBuffer.getLineCount()}get virtualLineCount(){return this.editorView.getVirtualLineCount()}get scrollY(){return this.editorView.getViewport().offsetY}get plainText(){return this.editBuffer.getText()}get logicalCursor(){return this.editBuffer.getCursorPosition()}get visualCursor(){return this.editorView.getVisualCursor()}get cursorOffset(){return this.editorView.getVisualCursor().offset}set cursorOffset(A){this.editorView.setCursorByOffset(A),this.requestRender()}get textColor(){return this._textColor}set textColor(A){let q=u(A??this._defaultOptions.textColor);if(this._textColor!==q)this._textColor=q,this.editBuffer.setDefaultFg(q),this.requestRender()}get selectionBg(){return this._selectionBg}set selectionBg(A){let q=A?u(A):this._defaultOptions.selectionBg;if(this._selectionBg!==q){if(this._selectionBg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get selectionFg(){return this._selectionFg}set selectionFg(A){let q=A?u(A):this._defaultOptions.selectionFg;if(this._selectionFg!==q){if(this._selectionFg=q,this.lastLocalSelection)this.updateLocalSelection(this.lastLocalSelection);this.requestRender()}}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){let q=u(A??this._defaultOptions.backgroundColor);if(this._backgroundColor!==q)this._backgroundColor=q,this.editBuffer.setDefaultBg(q),this.requestRender()}get attributes(){return this._defaultAttributes}set attributes(A){if(this._defaultAttributes!==A)this._defaultAttributes=A,this.editBuffer.setDefaultAttributes(A),this.requestRender()}get wrapMode(){return this._wrapMode}set wrapMode(A){if(this._wrapMode!==A)this._wrapMode=A,this.editorView.setWrapMode(A),this.yogaNode.markDirty(),this.requestRender()}get showCursor(){return this._showCursor}set showCursor(A){if(this._showCursor!==A){if(this._showCursor=A,!A&&this._focused)this._ctx.setCursorPosition(0,0,!1);this.requestRender()}}get cursorColor(){return this._cursorColor}set cursorColor(A){let q=u(A);if(this._cursorColor!==q){if(this._cursorColor=q,this._focused)this.requestRender()}}get cursorStyle(){return this._cursorStyle}set cursorStyle(A){let q=A;if(this.cursorStyle.style!==q.style||this.cursorStyle.blinking!==q.blinking){if(this._cursorStyle=q,this._focused)this.requestRender()}}get tabIndicator(){return this._tabIndicator}set tabIndicator(A){if(this._tabIndicator!==A){if(this._tabIndicator=A,A!==void 0)this.editorView.setTabIndicator(A);this.requestRender()}}get tabIndicatorColor(){return this._tabIndicatorColor}set tabIndicatorColor(A){let q=A?u(A):void 0;if(this._tabIndicatorColor!==q){if(this._tabIndicatorColor=q,q!==void 0)this.editorView.setTabIndicatorColor(q);this.requestRender()}}get scrollSpeed(){return this._scrollSpeed}set scrollSpeed(A){this._scrollSpeed=Math.max(0,A)}onMouseEvent(A){if(A.type==="scroll")this.handleScroll(A)}handleScroll(A){if(!A.scroll)return;let{direction:q,delta:g}=A.scroll,E=this.editorView.getViewport();if(q==="up"){let F=Math.max(0,E.offsetY-g);this.editorView.setViewport(E.offsetX,F,E.width,E.height,!0),this.requestRender()}else if(q==="down"){let F=this.editorView.getTotalVirtualLineCount(),K=Math.max(0,F-E.height),Z=Math.min(E.offsetY+g,K);this.editorView.setViewport(E.offsetX,Z,E.width,E.height,!0),this.requestRender()}if(this._wrapMode==="none"){if(q==="left"){let F=Math.max(0,E.offsetX-g);this.editorView.setViewport(F,E.offsetY,E.width,E.height,!0),this.requestRender()}else if(q==="right"){let F=E.offsetX+g;this.editorView.setViewport(F,E.offsetY,E.width,E.height,!0),this.requestRender()}}}onResize(A,q){this.editorView.setViewportSize(A,q)}refreshLocalSelection(){if(this.lastLocalSelection)return this.updateLocalSelection(this.lastLocalSelection);return!1}updateLocalSelection(A){if(!A?.isActive)return this.editorView.resetLocalSelection(),!0;return this.editorView.setLocalSelection(A.anchorX,A.anchorY,A.focusX,A.focusY,this._selectionBg,this._selectionFg,!1)}shouldStartSelection(A,q){if(!this.selectable)return!1;let g=A-this.x,E=q-this.y;return g>=0&&g<this.width&&E>=0&&E<this.height}onSelectionChanged(A){let q=XU(A,this.x,this.y);this.lastLocalSelection=q;let g=!0,E=this._keyboardSelectionActive,F;if(!q?.isActive)this._keyboardSelectionActive=!1,this.editorView.resetLocalSelection(),F=!0;else if(A?.isStart)F=this.editorView.setLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg,g,E);else F=this.editorView.updateLocalSelection(q.anchorX,q.anchorY,q.focusX,q.focusY,this._selectionBg,this._selectionFg,g,E);if(F&&q?.isActive&&A?.isSelecting){let K=this.editorView.getViewport(),Z=q.focusY,j=Math.max(1,Math.floor(K.height*this._scrollMargin));if(Z<j)this._autoScrollVelocity=-this._scrollSpeed;else if(Z>=K.height-j)this._autoScrollVelocity=this._scrollSpeed;else this._autoScrollVelocity=0}else this._keyboardSelectionActive=!1,this._autoScrollVelocity=0,this._autoScrollAccumulator=0;if(F)this.requestRender();return this.hasSelection()}onUpdate(A){if(super.onUpdate(A),this._autoScrollVelocity!==0&&this.hasSelection()){let q=A/1000;this._autoScrollAccumulator+=this._autoScrollVelocity*q;let g=Math.floor(Math.abs(this._autoScrollAccumulator));if(g>0){let E=this._autoScrollVelocity>0?1:-1,F=this.editorView.getViewport(),K=this.editorView.getTotalVirtualLineCount(),Z=Math.max(0,K-F.height),j=Math.max(0,Math.min(F.offsetY+E*g,Z));if(j!==F.offsetY)this.editorView.setViewport(F.offsetX,j,F.width,F.height,!1),this._ctx.requestSelectionUpdate();this._autoScrollAccumulator-=E*g}}}getSelectedText(){return this.editorView.getSelectedText()}hasSelection(){return this.editorView.hasSelection()}getSelection(){return this.editorView.getSelection()}setupMeasureFunc(){let A=(q,g,E,F)=>{let K;if(g===lq.Undefined||isNaN(q))K=0;else K=q;let Z=isNaN(E)?1:E,j=this.editorView.measureForDimensions(Math.floor(K),Math.floor(Z)),U=j?Math.max(1,j.maxWidth):1,G=j?Math.max(1,j.lineCount):1;if(g===lq.AtMost&&this._positionType!=="absolute")return{width:Math.min(K,U),height:Math.min(Z,G)};return{width:U,height:G}};this.yogaNode.setMeasureFunc(A)}render(A,q){if(!this.visible)return;if(this.isDestroyed)return;this.markClean(),this._ctx.addToHitGrid(this.x,this.y,this.width,this.height,this.num),this.renderSelf(A),this.renderCursor(A)}renderSelf(A){A.drawEditorView(this.editorView,this.x,this.y)}renderCursor(A){if(!this._showCursor||!this._focused)return;let q=this.editorView.getVisualCursor(),g=this.x+q.visualCol+1,E=this.y+q.visualRow+1;this._ctx.setCursorPosition(g,E,!0),this._ctx.setCursorColor(this._cursorColor),this._ctx.setCursorStyle(this._cursorStyle.style,this._cursorStyle.blinking)}focus(){super.focus(),this._ctx.setCursorStyle(this._cursorStyle.style,this._cursorStyle.blinking),this._ctx.setCursorColor(this._cursorColor),this.requestRender()}blur(){super.blur(),this._ctx.setCursorPosition(0,0,!1),this.requestRender()}onRemove(){if(this._focused)this._ctx.setCursorPosition(0,0,!1)}destroy(){if(this.isDestroyed)return;if(this._focused)this._ctx.setCursorPosition(0,0,!1),this.blur();this.editorView.destroy(),this.editBuffer.destroy(),super.destroy()}set onCursorChange(A){this._cursorChangeListener=A}get onCursorChange(){return this._cursorChangeListener}set onContentChange(A){this._contentChangeListener=A}get onContentChange(){return this._contentChangeListener}get syntaxStyle(){return this.editBuffer.getSyntaxStyle()}set syntaxStyle(A){this.editBuffer.setSyntaxStyle(A),this.requestRender()}addHighlight(A,q){this.editBuffer.addHighlight(A,q),this.requestRender()}addHighlightByCharRange(A){this.editBuffer.addHighlightByCharRange(A),this.requestRender()}removeHighlightsByRef(A){this.editBuffer.removeHighlightsByRef(A),this.requestRender()}clearLineHighlights(A){this.editBuffer.clearLineHighlights(A),this.requestRender()}clearAllHighlights(){this.editBuffer.clearAllHighlights(),this.requestRender()}getLineHighlights(A){return this.editBuffer.getLineHighlights(A)}setText(A){this.editBuffer.setText(A),this.yogaNode.markDirty(),this.requestRender()}replaceText(A){this.editBuffer.replaceText(A),this.yogaNode.markDirty(),this.requestRender()}clear(){this.editBuffer.clear(),this.editBuffer.clearAllHighlights(),this.yogaNode.markDirty(),this.requestRender()}deleteRange(A,q,g,E){this.editBuffer.deleteRange(A,q,g,E),this.yogaNode.markDirty(),this.requestRender()}insertText(A){this.editBuffer.insertText(A),this.yogaNode.markDirty(),this.requestRender()}getTextRange(A,q){return this.editBuffer.getTextRange(A,q)}getTextRangeByCoords(A,q,g,E){return this.editBuffer.getTextRangeByCoords(A,q,g,E)}updateSelectionForMovement(A,q){if(!this.selectable)return;if(!A){this._keyboardSelectionActive=!1,this._ctx.clearSelection();return}this._keyboardSelectionActive=!0;let g=this.editorView.getVisualCursor(),E=this.x+g.visualCol,F=this.y+g.visualRow;if(q){if(!this._ctx.hasSelection)this._ctx.startSelection(this,E,F);return}this._ctx.updateSelection(this,E,F)}}var SU=[{name:"left",action:"move-left"},{name:"right",action:"move-right"},{name:"up",action:"move-up"},{name:"down",action:"move-down"},{name:"left",shift:!0,action:"select-left"},{name:"right",shift:!0,action:"select-right"},{name:"up",shift:!0,action:"select-up"},{name:"down",shift:!0,action:"select-down"},{name:"home",action:"buffer-home"},{name:"end",action:"buffer-end"},{name:"home",shift:!0,action:"select-buffer-home"},{name:"end",shift:!0,action:"select-buffer-end"},{name:"a",ctrl:!0,action:"line-home"},{name:"e",ctrl:!0,action:"line-end"},{name:"a",ctrl:!0,shift:!0,action:"select-line-home"},{name:"e",ctrl:!0,shift:!0,action:"select-line-end"},{name:"a",meta:!0,action:"visual-line-home"},{name:"e",meta:!0,action:"visual-line-end"},{name:"a",meta:!0,shift:!0,action:"select-visual-line-home"},{name:"e",meta:!0,shift:!0,action:"select-visual-line-end"},{name:"f",ctrl:!0,action:"move-right"},{name:"b",ctrl:!0,action:"move-left"},{name:"w",ctrl:!0,action:"delete-word-backward"},{name:"backspace",ctrl:!0,action:"delete-word-backward"},{name:"d",meta:!0,action:"delete-word-forward"},{name:"delete",meta:!0,action:"delete-word-forward"},{name:"delete",ctrl:!0,action:"delete-word-forward"},{name:"d",ctrl:!0,shift:!0,action:"delete-line"},{name:"k",ctrl:!0,action:"delete-to-line-end"},{name:"u",ctrl:!0,action:"delete-to-line-start"},{name:"backspace",action:"backspace"},{name:"backspace",shift:!0,action:"backspace"},{name:"d",ctrl:!0,action:"delete"},{name:"delete",action:"delete"},{name:"delete",shift:!0,action:"delete"},{name:"return",action:"newline"},{name:"linefeed",action:"newline"},{name:"return",meta:!0,action:"submit"},{name:"-",ctrl:!0,action:"undo"},{name:".",ctrl:!0,action:"redo"},{name:"z",super:!0,action:"undo"},{name:"z",super:!0,shift:!0,action:"redo"},{name:"f",meta:!0,action:"word-forward"},{name:"b",meta:!0,action:"word-backward"},{name:"right",meta:!0,action:"word-forward"},{name:"left",meta:!0,action:"word-backward"},{name:"right",ctrl:!0,action:"word-forward"},{name:"left",ctrl:!0,action:"word-backward"},{name:"f",meta:!0,shift:!0,action:"select-word-forward"},{name:"b",meta:!0,shift:!0,action:"select-word-backward"},{name:"right",meta:!0,shift:!0,action:"select-word-forward"},{name:"left",meta:!0,shift:!0,action:"select-word-backward"},{name:"backspace",meta:!0,action:"delete-word-backward"},{name:"left",super:!0,action:"visual-line-home"},{name:"right",super:!0,action:"visual-line-end"},{name:"up",super:!0,action:"buffer-home"},{name:"down",super:!0,action:"buffer-end"},{name:"left",super:!0,shift:!0,action:"select-visual-line-home"},{name:"right",super:!0,shift:!0,action:"select-visual-line-end"},{name:"up",super:!0,shift:!0,action:"select-buffer-home"},{name:"down",super:!0,shift:!0,action:"select-buffer-end"}];class Sq extends BO{_placeholder;_placeholderColor;_unfocusedBackgroundColor;_unfocusedTextColor;_focusedBackgroundColor;_focusedTextColor;_keyBindingsMap;_keyAliasMap;_keyBindings;_actionHandlers;_initialValueSet=!1;_submitListener=void 0;static defaults={backgroundColor:"transparent",textColor:"#FFFFFF",focusedBackgroundColor:"transparent",focusedTextColor:"#FFFFFF",placeholder:null,placeholderColor:"#666666"};constructor(A,q){let g=Sq.defaults,E={...q,backgroundColor:q.backgroundColor||g.backgroundColor,textColor:q.textColor||g.textColor};super(A,E);this._unfocusedBackgroundColor=u(q.backgroundColor||g.backgroundColor),this._unfocusedTextColor=u(q.textColor||g.textColor),this._focusedBackgroundColor=u(q.focusedBackgroundColor||q.backgroundColor||g.focusedBackgroundColor),this._focusedTextColor=u(q.focusedTextColor||q.textColor||g.focusedTextColor),this._placeholder=q.placeholder??g.placeholder,this._placeholderColor=u(q.placeholderColor??g.placeholderColor),this._keyAliasMap=DE(kE,q.keyAliasMap||{}),this._keyBindings=q.keyBindings||[];let F=tg(SU,this._keyBindings);if(this._keyBindingsMap=sg(F,this._keyAliasMap),this._actionHandlers=this.buildActionHandlers(),this._submitListener=q.onSubmit,q.initialValue)this.setText(q.initialValue),this._initialValueSet=!0;this.updateColors(),this.applyPlaceholder(this._placeholder)}applyPlaceholder(A){if(A===null){this.editorView.setPlaceholderStyledText([]);return}if(typeof A==="string"){let g=[v6(this._placeholderColor)(A)];this.editorView.setPlaceholderStyledText(g)}else this.editorView.setPlaceholderStyledText(A.chunks)}buildActionHandlers(){return new Map([["move-left",()=>this.moveCursorLeft()],["move-right",()=>this.moveCursorRight()],["move-up",()=>this.moveCursorUp()],["move-down",()=>this.moveCursorDown()],["select-left",()=>this.moveCursorLeft({select:!0})],["select-right",()=>this.moveCursorRight({select:!0})],["select-up",()=>this.moveCursorUp({select:!0})],["select-down",()=>this.moveCursorDown({select:!0})],["line-home",()=>this.gotoLineHome()],["line-end",()=>this.gotoLineEnd()],["select-line-home",()=>this.gotoLineHome({select:!0})],["select-line-end",()=>this.gotoLineEnd({select:!0})],["visual-line-home",()=>this.gotoVisualLineHome()],["visual-line-end",()=>this.gotoVisualLineEnd()],["select-visual-line-home",()=>this.gotoVisualLineHome({select:!0})],["select-visual-line-end",()=>this.gotoVisualLineEnd({select:!0})],["select-buffer-home",()=>this.gotoBufferHome({select:!0})],["select-buffer-end",()=>this.gotoBufferEnd({select:!0})],["buffer-home",()=>this.gotoBufferHome()],["buffer-end",()=>this.gotoBufferEnd()],["delete-line",()=>this.deleteLine()],["delete-to-line-end",()=>this.deleteToLineEnd()],["delete-to-line-start",()=>this.deleteToLineStart()],["backspace",()=>this.deleteCharBackward()],["delete",()=>this.deleteChar()],["newline",()=>this.newLine()],["undo",()=>this.undo()],["redo",()=>this.redo()],["word-forward",()=>this.moveWordForward()],["word-backward",()=>this.moveWordBackward()],["select-word-forward",()=>this.moveWordForward({select:!0})],["select-word-backward",()=>this.moveWordBackward({select:!0})],["delete-word-forward",()=>this.deleteWordForward()],["delete-word-backward",()=>this.deleteWordBackward()],["submit",()=>this.submit()]])}handlePaste(A){this.insertText(A.text)}handleKeyPress(A){let q=ng({name:A.name,ctrl:A.ctrl,shift:A.shift,meta:A.meta,super:A.super,action:"move-left"}),g=this._keyBindingsMap.get(q);if(g){let E=this._actionHandlers.get(g);if(E)return E()}if(!A.ctrl&&!A.meta&&!A.super&&!A.hyper){if(A.name==="space")return this.insertText(" "),!0;if(A.sequence){let E=A.sequence.charCodeAt(0);if(E<32)return!1;if(E===127)return!1;return this.insertText(A.sequence),!0}}return!1}updateColors(){let A=this._focused?this._focusedBackgroundColor:this._unfocusedBackgroundColor,q=this._focused?this._focusedTextColor:this._unfocusedTextColor;super.backgroundColor=A,super.textColor=q}insertChar(A){if(this.hasSelection())this.deleteSelectedText();this.editBuffer.insertChar(A),this.requestRender()}insertText(A){if(this.hasSelection())this.deleteSelectedText();this.editBuffer.insertText(A),this.requestRender()}deleteChar(){if(this.hasSelection())return this.deleteSelectedText(),!0;return this._ctx.clearSelection(),this.editBuffer.deleteChar(),this.requestRender(),!0}deleteCharBackward(){if(this.hasSelection())return this.deleteSelectedText(),!0;return this._ctx.clearSelection(),this.editBuffer.deleteCharBackward(),this.requestRender(),!0}deleteSelectedText(){this.editorView.deleteSelectedText(),this._ctx.clearSelection(),this.requestRender()}newLine(){return this._ctx.clearSelection(),this.editBuffer.newLine(),this.requestRender(),!0}deleteLine(){return this._ctx.clearSelection(),this.editBuffer.deleteLine(),this.requestRender(),!0}moveCursorLeft(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editBuffer.moveCursorLeft(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveCursorRight(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editBuffer.moveCursorRight(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveCursorUp(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editorView.moveUpVisual(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveCursorDown(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editorView.moveDownVisual(),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoLine(A){this.editBuffer.gotoLine(A),this.requestRender()}gotoLineHome(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getCursor();if(g.col===0&&g.row>0){this.editBuffer.setCursor(g.row-1,0);let E=this.editBuffer.getEOL();this.editBuffer.setCursor(E.row,E.col)}else this.editBuffer.setCursor(g.row,0);return this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoLineEnd(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getCursor(),E=this.editBuffer.getEOL(),F=this.editBuffer.getLineCount();if(g.col===E.col&&g.row<F-1)this.editBuffer.setCursor(g.row+1,0);else this.editBuffer.setCursor(E.row,E.col);return this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoVisualLineHome(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getVisualSOL();return this.editBuffer.setCursor(g.logicalRow,g.logicalCol),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoVisualLineEnd(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editorView.getVisualEOL();return this.editBuffer.setCursor(g.logicalRow,g.logicalCol),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoBufferHome(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editBuffer.setCursor(0,0),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}gotoBufferEnd(A){let q=A?.select??!1;return this.updateSelectionForMovement(q,!0),this.editBuffer.gotoLine(999999),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}deleteToLineEnd(){let A=this.editorView.getCursor(),q=this.editBuffer.getEOL();if(q.col>A.col)this.editBuffer.deleteRange(A.row,A.col,q.row,q.col);return this.requestRender(),!0}deleteToLineStart(){let A=this.editorView.getCursor();if(A.col>0)this.editBuffer.deleteRange(A.row,0,A.row,A.col);return this.requestRender(),!0}undo(){return this._ctx.clearSelection(),this.editBuffer.undo(),this.requestRender(),!0}redo(){return this._ctx.clearSelection(),this.editBuffer.redo(),this.requestRender(),!0}moveWordForward(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editBuffer.getNextWordBoundary();return this.editBuffer.setCursorByOffset(g.offset),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}moveWordBackward(A){let q=A?.select??!1;this.updateSelectionForMovement(q,!0);let g=this.editBuffer.getPrevWordBoundary();return this.editBuffer.setCursorByOffset(g.offset),this.updateSelectionForMovement(q,!1),this.requestRender(),!0}deleteWordForward(){if(this.hasSelection())return this.deleteSelectedText(),!0;let A=this.editBuffer.getCursorPosition(),q=this.editBuffer.getNextWordBoundary();if(q.offset>A.offset)this.editBuffer.deleteRange(A.row,A.col,q.row,q.col);return this._ctx.clearSelection(),this.requestRender(),!0}deleteWordBackward(){if(this.hasSelection())return this.deleteSelectedText(),!0;let A=this.editBuffer.getCursorPosition(),q=this.editBuffer.getPrevWordBoundary();if(q.offset<A.offset)this.editBuffer.deleteRange(q.row,q.col,A.row,A.col);return this._ctx.clearSelection(),this.requestRender(),!0}focus(){super.focus(),this.updateColors()}blur(){if(super.blur(),!this.isDestroyed)this.updateColors()}get placeholder(){return this._placeholder}set placeholder(A){if(this._placeholder!==A)this._placeholder=A,this.applyPlaceholder(A),this.requestRender()}get placeholderColor(){return this._placeholderColor}set placeholderColor(A){let q=u(A??Sq.defaults.placeholderColor);if(this._placeholderColor!==q)this._placeholderColor=q,this.applyPlaceholder(this._placeholder),this.requestRender()}get backgroundColor(){return this._unfocusedBackgroundColor}set backgroundColor(A){let q=u(A??Sq.defaults.backgroundColor);if(this._unfocusedBackgroundColor!==q)this._unfocusedBackgroundColor=q,this.updateColors()}get textColor(){return this._unfocusedTextColor}set textColor(A){let q=u(A??Sq.defaults.textColor);if(this._unfocusedTextColor!==q)this._unfocusedTextColor=q,this.updateColors()}set focusedBackgroundColor(A){let q=u(A??Sq.defaults.focusedBackgroundColor);if(this._focusedBackgroundColor!==q)this._focusedBackgroundColor=q,this.updateColors()}set focusedTextColor(A){let q=u(A??Sq.defaults.focusedTextColor);if(this._focusedTextColor!==q)this._focusedTextColor=q,this.updateColors()}set initialValue(A){if(!this._initialValueSet)this.setText(A),this._initialValueSet=!0}submit(){if(this._submitListener)this._submitListener({});return!0}set onSubmit(A){this._submitListener=A}get onSubmit(){return this._submitListener}set keyBindings(A){this._keyBindings=A;let q=tg(SU,A);this._keyBindingsMap=sg(q,this._keyAliasMap)}set keyAliasMap(A){this._keyAliasMap=DE(kE,A);let q=tg(SU,this._keyBindings);this._keyBindingsMap=sg(q,this._keyAliasMap)}get extmarks(){return this.editorView.extmarks}}var MX;((A)=>{A.INPUT="input",A.CHANGE="change",A.ENTER="enter"})(MX||={});class VZ extends Sq{_maxLength;_lastCommittedValue="";static defaultOptions={placeholder:"",maxLength:1000,value:""};constructor(A,q){let g=VZ.defaultOptions,E=q.maxLength??g.maxLength,K=(q.value??g.value).replace(/[\n\r]/g,"").substring(0,E);super(A,{...q,placeholder:q.placeholder??g.placeholder,initialValue:K,height:1,wrapMode:"none",keyBindings:[{name:"return",action:"submit"},{name:"linefeed",action:"submit"},...q.keyBindings||[]]});if(this._maxLength=E,this._lastCommittedValue=this.plainText,K)this.cursorOffset=K.length}newLine(){return!1}handlePaste(A){let q=A.text.replace(/[\n\r]/g,"");if(q)this.insertText(q)}insertText(A){let q=A.replace(/[\n\r]/g,"");if(!q)return;let g=this.plainText.length,E=this._maxLength-g;if(E<=0)return;let F=q.substring(0,E);super.insertText(F),this.emit("input",this.plainText)}get value(){return this.plainText}set value(A){let q=A.substring(0,this._maxLength).replace(/[\n\r]/g,"");if(this.plainText!==q)this.setText(q),this.cursorOffset=q.length,this.emit("input",q)}focus(){super.focus(),this._lastCommittedValue=this.plainText}blur(){if(!this.isDestroyed){let A=this.plainText;if(A!==this._lastCommittedValue)this._lastCommittedValue=A,this.emit("change",A)}super.blur()}submit(){let A=this.plainText;if(A!==this._lastCommittedValue)this._lastCommittedValue=A,this.emit("change",A);return this.emit("enter",A),!0}deleteCharBackward(){let A=super.deleteCharBackward();return this.emit("input",this.plainText),A}deleteChar(){let A=super.deleteChar();return this.emit("input",this.plainText),A}deleteCharacter(A){if(A==="backward")this.deleteCharBackward();else this.deleteChar()}set maxLength(A){this._maxLength=A;let q=this.plainText;if(q.length>A)this.setText(q.substring(0,A))}get maxLength(){return this._maxLength}set placeholder(A){super.placeholder=A}get placeholder(){let A=super.placeholder;return typeof A==="string"?A:""}set initialValue(A){}}function yU(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var eg=yU();function wO(A){eg=A}var uE={exec:()=>null};function GA(A,q=""){let g=typeof A=="string"?A:A.source,E={replace:(F,K)=>{let Z=typeof K=="string"?K:K.source;return Z=Z.replace(dA.caret,"$1"),g=g.replace(F,Z),E},getRegex:()=>new RegExp(g,q)};return E}var _X=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),dA={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:(A)=>new RegExp(`^( {0,3}${A})((?:[\t ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),hrRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}#`),htmlBeginRegex:(A)=>new RegExp(`^ {0,${Math.min(3,A-1)}}<(?:[a-z].*>|!--)`,"i")},$X=/^(?:[ \t]*(?:\n|$))+/,XX=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,HX=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,iE=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,LX=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,bU=/(?:[*+-]|\d{1,9}[.)])/,CO=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,kO=GA(CO).replace(/bull/g,bU).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),VX=GA(CO).replace(/bull/g,bU).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),vU=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,WX=/^[^\n]+/,mU=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,NX=GA(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",mU).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),TX=GA(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,bU).getRegex(),WZ="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",fU=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,IX=GA("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$))","i").replace("comment",fU).replace("tag",WZ).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),DO=GA(vU).replace("hr",iE).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",WZ).getRegex(),xX=GA(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",DO).getRegex(),cU={blockquote:xX,code:XX,def:NX,fences:HX,heading:LX,hr:iE,html:IX,lheading:kO,list:TX,newline:$X,paragraph:DO,table:uE,text:WX},JO=GA("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",iE).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3}\t)[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",WZ).getRegex(),PX={...cU,lheading:VX,table:JO,paragraph:GA(vU).replace("hr",iE).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",JO).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",WZ).getRegex()},RX={...cU,html:GA(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",fU).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:uE,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:GA(vU).replace("hr",iE).replace("heading",` *#{1,6} *[^
|
|
33
|
+
]`).replace("lheading",kO).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},SX=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,aX=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,yO=/^( {2,}|\\)\n(?!\s*$)/,hX=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,NZ=/[\p{P}\p{S}]/u,dU=/[\s\p{P}\p{S}]/u,bO=/[^\s\p{P}\p{S}]/u,zX=GA(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,dU).getRegex(),vO=/(?!~)[\p{P}\p{S}]/u,BX=/(?!~)[\s\p{P}\p{S}]/u,wX=/(?:[^\s\p{P}\p{S}]|~)/u,CX=GA(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",_X?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),mO=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,kX=GA(mO,"u").replace(/punct/g,NZ).getRegex(),DX=GA(mO,"u").replace(/punct/g,vO).getRegex(),fO="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",yX=GA(fO,"gu").replace(/notPunctSpace/g,bO).replace(/punctSpace/g,dU).replace(/punct/g,NZ).getRegex(),bX=GA(fO,"gu").replace(/notPunctSpace/g,wX).replace(/punctSpace/g,BX).replace(/punct/g,vO).getRegex(),vX=GA("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,bO).replace(/punctSpace/g,dU).replace(/punct/g,NZ).getRegex(),mX=GA(/\\(punct)/,"gu").replace(/punct/g,NZ).getRegex(),fX=GA(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),cX=GA(fU).replace("(?:-->|$)","-->").getRegex(),dX=GA("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",cX).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),XZ=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,pX=GA(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",XZ).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),cO=GA(/^!?\[(label)\]\[(ref)\]/).replace("label",XZ).replace("ref",mU).getRegex(),dO=GA(/^!?\[(ref)\](?:\[\])?/).replace("ref",mU).getRegex(),uX=GA("reflink|nolink(?!\\()","g").replace("reflink",cO).replace("nolink",dO).getRegex(),MO=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,pU={_backpedal:uE,anyPunctuation:mX,autolink:fX,blockSkip:CX,br:yO,code:aX,del:uE,emStrongLDelim:kX,emStrongRDelimAst:yX,emStrongRDelimUnd:vX,escape:SX,link:pX,nolink:dO,punctuation:zX,reflink:cO,reflinkSearch:uX,tag:dX,text:hX,url:uE},lX={...pU,link:GA(/^!?\[(label)\]\((.*?)\)/).replace("label",XZ).getRegex(),reflink:GA(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",XZ).getRegex()},BU={...pU,emStrongRDelimAst:bX,emStrongLDelim:DX,url:GA(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",MO).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:GA(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",MO).getRegex()},iX={...BU,br:GA(yO).replace("{2,}","*").getRegex(),text:GA(BU.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},_Z={normal:cU,gfm:PX,pedantic:RX},fE={normal:pU,gfm:BU,breaks:iX,pedantic:lX},tX={"&":"&","<":"<",">":">",'"':""","'":"'"},_O=(A)=>tX[A];function sq(A,q){if(q){if(dA.escapeTest.test(A))return A.replace(dA.escapeReplace,_O)}else if(dA.escapeTestNoEncode.test(A))return A.replace(dA.escapeReplaceNoEncode,_O);return A}function $O(A){try{A=encodeURI(A).replace(dA.percentDecode,"%")}catch{return null}return A}function XO(A,q){let g=A.replace(dA.findPipe,(K,Z,j)=>{let U=!1,G=Z;for(;--G>=0&&j[G]==="\\";)U=!U;return U?"|":" |"}),E=g.split(dA.splitPipe),F=0;if(E[0].trim()||E.shift(),E.length>0&&!E.at(-1)?.trim()&&E.pop(),q)if(E.length>q)E.splice(q);else for(;E.length<q;)E.push("");for(;F<E.length;F++)E[F]=E[F].trim().replace(dA.slashPipe,"|");return E}function cE(A,q,g){let E=A.length;if(E===0)return"";let F=0;for(;F<E;){let K=A.charAt(E-F-1);if(K===q&&!g)F++;else if(K!==q&&g)F++;else break}return A.slice(0,E-F)}function sX(A,q){if(A.indexOf(q[1])===-1)return-1;let g=0;for(let E=0;E<A.length;E++)if(A[E]==="\\")E++;else if(A[E]===q[0])g++;else if(A[E]===q[1]&&(g--,g<0))return E;return g>0?-2:-1}function HO(A,q,g,E,F){let K=q.href,Z=q.title||null,j=A[1].replace(F.other.outputLinkReplace,"$1");E.state.inLink=!0;let U={type:A[0].charAt(0)==="!"?"image":"link",raw:g,href:K,title:Z,text:j,tokens:E.inlineTokens(j)};return E.state.inLink=!1,U}function nX(A,q,g){let E=A.match(g.other.indentCodeCompensation);if(E===null)return q;let F=E[1];return q.split(`
|
|
34
34
|
`).map((K)=>{let Z=K.match(g.other.beginningSpace);if(Z===null)return K;let[j]=Z;return j.length>=F.length?K.slice(F.length):K}).join(`
|
|
35
|
-
`)}var
|
|
36
|
-
`)}}}fences(A){let q=this.rules.block.fences.exec(A);if(q){let g=q[0],E
|
|
37
|
-
`)}}blockquote(A){let q=this.rules.block.blockquote.exec(A);if(q){let g=
|
|
35
|
+
`)}var HZ=class{options;rules;lexer;constructor(A){this.options=A||eg}space(A){let q=this.rules.block.newline.exec(A);if(q&&q[0].length>0)return{type:"space",raw:q[0]}}code(A){let q=this.rules.block.code.exec(A);if(q){let g=q[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:q[0],codeBlockStyle:"indented",text:this.options.pedantic?g:cE(g,`
|
|
36
|
+
`)}}}fences(A){let q=this.rules.block.fences.exec(A);if(q){let g=q[0],E=nX(g,q[3]||"",this.rules);return{type:"code",raw:g,lang:q[2]?q[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):q[2],text:E}}}heading(A){let q=this.rules.block.heading.exec(A);if(q){let g=q[2].trim();if(this.rules.other.endingHash.test(g)){let E=cE(g,"#");(this.options.pedantic||!E||this.rules.other.endingSpaceChar.test(E))&&(g=E.trim())}return{type:"heading",raw:q[0],depth:q[1].length,text:g,tokens:this.lexer.inline(g)}}}hr(A){let q=this.rules.block.hr.exec(A);if(q)return{type:"hr",raw:cE(q[0],`
|
|
37
|
+
`)}}blockquote(A){let q=this.rules.block.blockquote.exec(A);if(q){let g=cE(q[0],`
|
|
38
38
|
`).split(`
|
|
39
|
-
`),E="",F="",K=[];for(;g.length>0;){let Z=!1,j=[],U;for(U=0;U<g.length;U++)if(this.rules.other.blockquoteStart.test(g[U]))j.push(g[U]),Z=!0;else if(!Z)j.push(g[U]);else break;g=g.slice(U);let
|
|
40
|
-
`),Y=
|
|
39
|
+
`),E="",F="",K=[];for(;g.length>0;){let Z=!1,j=[],U;for(U=0;U<g.length;U++)if(this.rules.other.blockquoteStart.test(g[U]))j.push(g[U]),Z=!0;else if(!Z)j.push(g[U]);else break;g=g.slice(U);let G=j.join(`
|
|
40
|
+
`),Y=G.replace(this.rules.other.blockquoteSetextReplace,`
|
|
41
41
|
$1`).replace(this.rules.other.blockquoteSetextReplace2,"");E=E?`${E}
|
|
42
|
-
${
|
|
43
|
-
${Y}`:Y;let M=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(Y,K,!0),this.lexer.state.top=M,g.length===0)break;let
|
|
42
|
+
${G}`:G,F=F?`${F}
|
|
43
|
+
${Y}`:Y;let M=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(Y,K,!0),this.lexer.state.top=M,g.length===0)break;let O=K.at(-1);if(O?.type==="code")break;if(O?.type==="blockquote"){let $=O,_=$.raw+`
|
|
44
44
|
`+g.join(`
|
|
45
|
-
`),
|
|
45
|
+
`),x=this.blockquote(_);K[K.length-1]=x,E=E.substring(0,E.length-$.raw.length)+x.raw,F=F.substring(0,F.length-$.text.length)+x.text;break}else if(O?.type==="list"){let $=O,_=$.raw+`
|
|
46
46
|
`+g.join(`
|
|
47
|
-
`),
|
|
48
|
-
`);continue}}return{type:"blockquote",raw:E,tokens:K,text:F}}}list(A){let q=this.rules.block.list.exec(A);if(q){let g=q[1].trim(),E=g.length>1,F={type:"list",raw:"",ordered:E,start:E?+g.slice(0,-1):"",loose:!1,items:[]};g=E?`\\d{1,9}\\${g.slice(-1)}`:`\\${g}`,this.options.pedantic&&(g=E?g:"[*+-]");let K=this.rules.other.listItemRegex(g),Z=!1;for(;A;){let U=!1,
|
|
49
|
-
`,1)[0].replace(this.rules.other.listReplaceTabs,(
|
|
50
|
-
`,1)[0],$=!M.trim(),_=0;if(this.options.pedantic?(_=2,Y=M.trimStart()):$?_=q[1].length+1:(_=q[2].search(this.rules.other.nonSpaceChar),_=_>4?1:_,Y=M.slice(_),_+=q[1].length),$&&this.rules.other.blankLine.test(
|
|
51
|
-
`,A=A.substring(
|
|
52
|
-
`,1)[0],
|
|
53
|
-
`+
|
|
54
|
-
`+
|
|
55
|
-
`,A=A.substring(C.length+1),M=
|
|
56
|
-
`):[],K={type:"table",raw:q[0],header:[],align:[],rows:[]};if(g.length===E.length){for(let Z of E)this.rules.other.tableAlignRight.test(Z)?K.align.push("right"):this.rules.other.tableAlignCenter.test(Z)?K.align.push("center"):this.rules.other.tableAlignLeft.test(Z)?K.align.push("left"):K.align.push(null);for(let Z=0;Z<g.length;Z++)K.header.push({text:g[Z],tokens:this.lexer.inline(g[Z]),header:!0,align:K.align[Z]});for(let Z of F)K.rows.push(
|
|
57
|
-
`?q[1].slice(0,-1):q[1];return{type:"paragraph",raw:q[0],text:g,tokens:this.lexer.inline(g)}}}text(A){let q=this.rules.block.text.exec(A);if(q)return{type:"text",raw:q[0],text:q[0],tokens:this.lexer.inline(q[0])}}escape(A){let q=this.rules.inline.escape.exec(A);if(q)return{type:"escape",raw:q[0],text:q[1]}}tag(A){let q=this.rules.inline.tag.exec(A);if(q)return!this.lexer.state.inLink&&this.rules.other.startATag.test(q[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(q[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(q[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(q[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:q[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:q[0]}}link(A){let q=this.rules.inline.link.exec(A);if(q){let g=q[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(g)){if(!this.rules.other.endAngleBracket.test(g))return;let K=
|
|
58
|
-
`),this.blockTokens(q,this.tokens);for(let g=0;g<this.inlineQueue.length;g++){let E=this.inlineQueue[g];this.inlineTokens(E.src,E.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(q,g=[],E=!1){for(this.options.pedantic&&(q=q.replace(
|
|
47
|
+
`),x=this.list(_);K[K.length-1]=x,E=E.substring(0,E.length-O.raw.length)+x.raw,F=F.substring(0,F.length-$.raw.length)+x.raw,g=_.substring(K.at(-1).raw.length).split(`
|
|
48
|
+
`);continue}}return{type:"blockquote",raw:E,tokens:K,text:F}}}list(A){let q=this.rules.block.list.exec(A);if(q){let g=q[1].trim(),E=g.length>1,F={type:"list",raw:"",ordered:E,start:E?+g.slice(0,-1):"",loose:!1,items:[]};g=E?`\\d{1,9}\\${g.slice(-1)}`:`\\${g}`,this.options.pedantic&&(g=E?g:"[*+-]");let K=this.rules.other.listItemRegex(g),Z=!1;for(;A;){let U=!1,G="",Y="";if(!(q=K.exec(A))||this.rules.block.hr.test(A))break;G=q[0],A=A.substring(G.length);let M=q[2].split(`
|
|
49
|
+
`,1)[0].replace(this.rules.other.listReplaceTabs,(x)=>" ".repeat(3*x.length)),O=A.split(`
|
|
50
|
+
`,1)[0],$=!M.trim(),_=0;if(this.options.pedantic?(_=2,Y=M.trimStart()):$?_=q[1].length+1:(_=q[2].search(this.rules.other.nonSpaceChar),_=_>4?1:_,Y=M.slice(_),_+=q[1].length),$&&this.rules.other.blankLine.test(O)&&(G+=O+`
|
|
51
|
+
`,A=A.substring(O.length+1),U=!0),!U){let x=this.rules.other.nextBulletRegex(_),N=this.rules.other.hrRegex(_),L=this.rules.other.fencesBeginRegex(_),P=this.rules.other.headingBeginRegex(_),k=this.rules.other.htmlBeginRegex(_);for(;A;){let C=A.split(`
|
|
52
|
+
`,1)[0],i;if(O=C,this.options.pedantic?(O=O.replace(this.rules.other.listReplaceNesting," "),i=O):i=O.replace(this.rules.other.tabCharGlobal," "),L.test(O)||P.test(O)||k.test(O)||x.test(O)||N.test(O))break;if(i.search(this.rules.other.nonSpaceChar)>=_||!O.trim())Y+=`
|
|
53
|
+
`+i.slice(_);else{if($||M.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||L.test(M)||P.test(M)||N.test(M))break;Y+=`
|
|
54
|
+
`+O}!$&&!O.trim()&&($=!0),G+=C+`
|
|
55
|
+
`,A=A.substring(C.length+1),M=i.slice(_)}}F.loose||(Z?F.loose=!0:this.rules.other.doubleBlankLine.test(G)&&(Z=!0)),F.items.push({type:"list_item",raw:G,task:!!this.options.gfm&&this.rules.other.listIsTask.test(Y),loose:!1,text:Y,tokens:[]}),F.raw+=G}let j=F.items.at(-1);if(j)j.raw=j.raw.trimEnd(),j.text=j.text.trimEnd();else return;F.raw=F.raw.trimEnd();for(let U of F.items){if(this.lexer.state.top=!1,U.tokens=this.lexer.blockTokens(U.text,[]),U.task){if(U.text=U.text.replace(this.rules.other.listReplaceTask,""),U.tokens[0]?.type==="text"||U.tokens[0]?.type==="paragraph"){U.tokens[0].raw=U.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),U.tokens[0].text=U.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let Y=this.lexer.inlineQueue.length-1;Y>=0;Y--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[Y].src)){this.lexer.inlineQueue[Y].src=this.lexer.inlineQueue[Y].src.replace(this.rules.other.listReplaceTask,"");break}}let G=this.rules.other.listTaskCheckbox.exec(U.raw);if(G){let Y={type:"checkbox",raw:G[0]+" ",checked:G[0]!=="[ ]"};U.checked=Y.checked,F.loose?U.tokens[0]&&["paragraph","text"].includes(U.tokens[0].type)&&"tokens"in U.tokens[0]&&U.tokens[0].tokens?(U.tokens[0].raw=Y.raw+U.tokens[0].raw,U.tokens[0].text=Y.raw+U.tokens[0].text,U.tokens[0].tokens.unshift(Y)):U.tokens.unshift({type:"paragraph",raw:Y.raw,text:Y.raw,tokens:[Y]}):U.tokens.unshift(Y)}}if(!F.loose){let G=U.tokens.filter((M)=>M.type==="space"),Y=G.length>0&&G.some((M)=>this.rules.other.anyLine.test(M.raw));F.loose=Y}}if(F.loose)for(let U of F.items){U.loose=!0;for(let G of U.tokens)G.type==="text"&&(G.type="paragraph")}return F}}html(A){let q=this.rules.block.html.exec(A);if(q)return{type:"html",block:!0,raw:q[0],pre:q[1]==="pre"||q[1]==="script"||q[1]==="style",text:q[0]}}def(A){let q=this.rules.block.def.exec(A);if(q){let g=q[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),E=q[2]?q[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",F=q[3]?q[3].substring(1,q[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):q[3];return{type:"def",tag:g,raw:q[0],href:E,title:F}}}table(A){let q=this.rules.block.table.exec(A);if(!q||!this.rules.other.tableDelimiter.test(q[2]))return;let g=XO(q[1]),E=q[2].replace(this.rules.other.tableAlignChars,"").split("|"),F=q[3]?.trim()?q[3].replace(this.rules.other.tableRowBlankLine,"").split(`
|
|
56
|
+
`):[],K={type:"table",raw:q[0],header:[],align:[],rows:[]};if(g.length===E.length){for(let Z of E)this.rules.other.tableAlignRight.test(Z)?K.align.push("right"):this.rules.other.tableAlignCenter.test(Z)?K.align.push("center"):this.rules.other.tableAlignLeft.test(Z)?K.align.push("left"):K.align.push(null);for(let Z=0;Z<g.length;Z++)K.header.push({text:g[Z],tokens:this.lexer.inline(g[Z]),header:!0,align:K.align[Z]});for(let Z of F)K.rows.push(XO(Z,K.header.length).map((j,U)=>({text:j,tokens:this.lexer.inline(j),header:!1,align:K.align[U]})));return K}}lheading(A){let q=this.rules.block.lheading.exec(A);if(q)return{type:"heading",raw:q[0],depth:q[2].charAt(0)==="="?1:2,text:q[1],tokens:this.lexer.inline(q[1])}}paragraph(A){let q=this.rules.block.paragraph.exec(A);if(q){let g=q[1].charAt(q[1].length-1)===`
|
|
57
|
+
`?q[1].slice(0,-1):q[1];return{type:"paragraph",raw:q[0],text:g,tokens:this.lexer.inline(g)}}}text(A){let q=this.rules.block.text.exec(A);if(q)return{type:"text",raw:q[0],text:q[0],tokens:this.lexer.inline(q[0])}}escape(A){let q=this.rules.inline.escape.exec(A);if(q)return{type:"escape",raw:q[0],text:q[1]}}tag(A){let q=this.rules.inline.tag.exec(A);if(q)return!this.lexer.state.inLink&&this.rules.other.startATag.test(q[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(q[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(q[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(q[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:q[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:q[0]}}link(A){let q=this.rules.inline.link.exec(A);if(q){let g=q[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(g)){if(!this.rules.other.endAngleBracket.test(g))return;let K=cE(g.slice(0,-1),"\\");if((g.length-K.length)%2===0)return}else{let K=sX(q[2],"()");if(K===-2)return;if(K>-1){let Z=(q[0].indexOf("!")===0?5:4)+q[1].length+K;q[2]=q[2].substring(0,K),q[0]=q[0].substring(0,Z).trim(),q[3]=""}}let E=q[2],F="";if(this.options.pedantic){let K=this.rules.other.pedanticHrefTitle.exec(E);K&&(E=K[1],F=K[3])}else F=q[3]?q[3].slice(1,-1):"";return E=E.trim(),this.rules.other.startAngleBracket.test(E)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(g)?E=E.slice(1):E=E.slice(1,-1)),HO(q,{href:E&&E.replace(this.rules.inline.anyPunctuation,"$1"),title:F&&F.replace(this.rules.inline.anyPunctuation,"$1")},q[0],this.lexer,this.rules)}}reflink(A,q){let g;if((g=this.rules.inline.reflink.exec(A))||(g=this.rules.inline.nolink.exec(A))){let E=(g[2]||g[1]).replace(this.rules.other.multipleSpaceGlobal," "),F=q[E.toLowerCase()];if(!F){let K=g[0].charAt(0);return{type:"text",raw:K,text:K}}return HO(g,F,g[0],this.lexer,this.rules)}}emStrong(A,q,g=""){let E=this.rules.inline.emStrongLDelim.exec(A);if(!E||E[3]&&g.match(this.rules.other.unicodeAlphaNumeric))return;if(!(E[1]||E[2])||!g||this.rules.inline.punctuation.exec(g)){let F=[...E[0]].length-1,K,Z,j=F,U=0,G=E[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(G.lastIndex=0,q=q.slice(-1*A.length+F);(E=G.exec(q))!=null;){if(K=E[1]||E[2]||E[3]||E[4]||E[5]||E[6],!K)continue;if(Z=[...K].length,E[3]||E[4]){j+=Z;continue}else if((E[5]||E[6])&&F%3&&!((F+Z)%3)){U+=Z;continue}if(j-=Z,j>0)continue;Z=Math.min(Z,Z+j+U);let Y=[...E[0]][0].length,M=A.slice(0,F+E.index+Y+Z);if(Math.min(F,Z)%2){let $=M.slice(1,-1);return{type:"em",raw:M,text:$,tokens:this.lexer.inlineTokens($)}}let O=M.slice(2,-2);return{type:"strong",raw:M,text:O,tokens:this.lexer.inlineTokens(O)}}}}codespan(A){let q=this.rules.inline.code.exec(A);if(q){let g=q[2].replace(this.rules.other.newLineCharGlobal," "),E=this.rules.other.nonSpaceChar.test(g),F=this.rules.other.startingSpaceChar.test(g)&&this.rules.other.endingSpaceChar.test(g);return E&&F&&(g=g.substring(1,g.length-1)),{type:"codespan",raw:q[0],text:g}}}br(A){let q=this.rules.inline.br.exec(A);if(q)return{type:"br",raw:q[0]}}del(A){let q=this.rules.inline.del.exec(A);if(q)return{type:"del",raw:q[0],text:q[2],tokens:this.lexer.inlineTokens(q[2])}}autolink(A){let q=this.rules.inline.autolink.exec(A);if(q){let g,E;return q[2]==="@"?(g=q[1],E="mailto:"+g):(g=q[1],E=g),{type:"link",raw:q[0],text:g,href:E,tokens:[{type:"text",raw:g,text:g}]}}}url(A){let q;if(q=this.rules.inline.url.exec(A)){let g,E;if(q[2]==="@")g=q[0],E="mailto:"+g;else{let F;do F=q[0],q[0]=this.rules.inline._backpedal.exec(q[0])?.[0]??"";while(F!==q[0]);g=q[0],q[1]==="www."?E="http://"+q[0]:E=q[0]}return{type:"link",raw:q[0],text:g,href:E,tokens:[{type:"text",raw:g,text:g}]}}}inlineText(A){let q=this.rules.inline.text.exec(A);if(q){let g=this.lexer.state.inRawBlock;return{type:"text",raw:q[0],text:q[0],escaped:g}}}},Lq=class A{tokens;options;state;inlineQueue;tokenizer;constructor(q){this.tokens=[],this.tokens.links=Object.create(null),this.options=q||eg,this.options.tokenizer=this.options.tokenizer||new HZ,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let g={other:dA,block:_Z.normal,inline:fE.normal};this.options.pedantic?(g.block=_Z.pedantic,g.inline=fE.pedantic):this.options.gfm&&(g.block=_Z.gfm,this.options.breaks?g.inline=fE.breaks:g.inline=fE.gfm),this.tokenizer.rules=g}static get rules(){return{block:_Z,inline:fE}}static lex(q,g){return new A(g).lex(q)}static lexInline(q,g){return new A(g).inlineTokens(q)}lex(q){q=q.replace(dA.carriageReturn,`
|
|
58
|
+
`),this.blockTokens(q,this.tokens);for(let g=0;g<this.inlineQueue.length;g++){let E=this.inlineQueue[g];this.inlineTokens(E.src,E.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(q,g=[],E=!1){for(this.options.pedantic&&(q=q.replace(dA.tabCharGlobal," ").replace(dA.spaceLine,""));q;){let F;if(this.options.extensions?.block?.some((Z)=>(F=Z.call({lexer:this},q,g))?(q=q.substring(F.raw.length),g.push(F),!0):!1))continue;if(F=this.tokenizer.space(q)){q=q.substring(F.raw.length);let Z=g.at(-1);F.raw.length===1&&Z!==void 0?Z.raw+=`
|
|
59
59
|
`:g.push(F);continue}if(F=this.tokenizer.code(q)){q=q.substring(F.raw.length);let Z=g.at(-1);Z?.type==="paragraph"||Z?.type==="text"?(Z.raw+=(Z.raw.endsWith(`
|
|
60
60
|
`)?"":`
|
|
61
61
|
`)+F.raw,Z.text+=`
|
|
62
62
|
`+F.text,this.inlineQueue.at(-1).src=Z.text):g.push(F);continue}if(F=this.tokenizer.fences(q)){q=q.substring(F.raw.length),g.push(F);continue}if(F=this.tokenizer.heading(q)){q=q.substring(F.raw.length),g.push(F);continue}if(F=this.tokenizer.hr(q)){q=q.substring(F.raw.length),g.push(F);continue}if(F=this.tokenizer.blockquote(q)){q=q.substring(F.raw.length),g.push(F);continue}if(F=this.tokenizer.list(q)){q=q.substring(F.raw.length),g.push(F);continue}if(F=this.tokenizer.html(q)){q=q.substring(F.raw.length),g.push(F);continue}if(F=this.tokenizer.def(q)){q=q.substring(F.raw.length);let Z=g.at(-1);Z?.type==="paragraph"||Z?.type==="text"?(Z.raw+=(Z.raw.endsWith(`
|
|
63
63
|
`)?"":`
|
|
64
64
|
`)+F.raw,Z.text+=`
|
|
65
|
-
`+F.raw,this.inlineQueue.at(-1).src=Z.text):this.tokens.links[F.tag]||(this.tokens.links[F.tag]={href:F.href,title:F.title},g.push(F));continue}if(F=this.tokenizer.table(q)){q=q.substring(F.raw.length),g.push(F);continue}if(F=this.tokenizer.lheading(q)){q=q.substring(F.raw.length),g.push(F);continue}let K=q;if(this.options.extensions?.startBlock){let Z=1/0,j=q.slice(1),U;this.options.extensions.startBlock.forEach((
|
|
65
|
+
`+F.raw,this.inlineQueue.at(-1).src=Z.text):this.tokens.links[F.tag]||(this.tokens.links[F.tag]={href:F.href,title:F.title},g.push(F));continue}if(F=this.tokenizer.table(q)){q=q.substring(F.raw.length),g.push(F);continue}if(F=this.tokenizer.lheading(q)){q=q.substring(F.raw.length),g.push(F);continue}let K=q;if(this.options.extensions?.startBlock){let Z=1/0,j=q.slice(1),U;this.options.extensions.startBlock.forEach((G)=>{U=G.call({lexer:this},j),typeof U=="number"&&U>=0&&(Z=Math.min(Z,U))}),Z<1/0&&Z>=0&&(K=q.substring(0,Z+1))}if(this.state.top&&(F=this.tokenizer.paragraph(K))){let Z=g.at(-1);E&&Z?.type==="paragraph"?(Z.raw+=(Z.raw.endsWith(`
|
|
66
66
|
`)?"":`
|
|
67
67
|
`)+F.raw,Z.text+=`
|
|
68
68
|
`+F.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=Z.text):g.push(F),E=K.length!==q.length,q=q.substring(F.raw.length);continue}if(F=this.tokenizer.text(q)){q=q.substring(F.raw.length);let Z=g.at(-1);Z?.type==="text"?(Z.raw+=(Z.raw.endsWith(`
|
|
69
69
|
`)?"":`
|
|
70
70
|
`)+F.raw,Z.text+=`
|
|
71
|
-
`+F.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=Z.text):g.push(F);continue}if(q){let Z="Infinite loop on byte: "+q.charCodeAt(0);if(this.options.silent){console.error(Z);break}else throw Error(Z)}}return this.state.top=!0,g}inline(q,g=[]){return this.inlineQueue.push({src:q,tokens:g}),g}inlineTokens(q,g=[]){let E=q,F=null;if(this.tokens.links){let U=Object.keys(this.tokens.links);if(U.length>0)for(;(F=this.tokenizer.rules.inline.reflinkSearch.exec(E))!=null;)U.includes(F[0].slice(F[0].lastIndexOf("[")+1,-1))&&(E=E.slice(0,F.index)+"["+"a".repeat(F[0].length-2)+"]"+E.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(F=this.tokenizer.rules.inline.anyPunctuation.exec(E))!=null;)E=E.slice(0,F.index)+"++"+E.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let K;for(;(F=this.tokenizer.rules.inline.blockSkip.exec(E))!=null;)K=F[2]?F[2].length:0,E=E.slice(0,F.index+K)+"["+"a".repeat(F[0].length-K-2)+"]"+E.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);E=this.options.hooks?.emStrongMask?.call({lexer:this},E)??E;let Z=!1,j="";for(;q;){Z||(j=""),Z=!1;let U;if(this.options.extensions?.inline?.some((Y)=>(U=Y.call({lexer:this},q,g))?(q=q.substring(U.raw.length),g.push(U),!0):!1))continue;if(U=this.tokenizer.escape(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.tag(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.link(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.reflink(q,this.tokens.links)){q=q.substring(U.raw.length);let Y=g.at(-1);U.type==="text"&&Y?.type==="text"?(Y.raw+=U.raw,Y.text+=U.text):g.push(U);continue}if(U=this.tokenizer.emStrong(q,E,j)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.codespan(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.br(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.del(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.autolink(q)){q=q.substring(U.raw.length),g.push(U);continue}if(!this.state.inLink&&(U=this.tokenizer.url(q))){q=q.substring(U.raw.length),g.push(U);continue}let
|
|
72
|
-
`;return E?'<pre><code class="language-'+
|
|
73
|
-
`:"<pre><code>"+(g?F:
|
|
71
|
+
`+F.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=Z.text):g.push(F);continue}if(q){let Z="Infinite loop on byte: "+q.charCodeAt(0);if(this.options.silent){console.error(Z);break}else throw new Error(Z)}}return this.state.top=!0,g}inline(q,g=[]){return this.inlineQueue.push({src:q,tokens:g}),g}inlineTokens(q,g=[]){let E=q,F=null;if(this.tokens.links){let U=Object.keys(this.tokens.links);if(U.length>0)for(;(F=this.tokenizer.rules.inline.reflinkSearch.exec(E))!=null;)U.includes(F[0].slice(F[0].lastIndexOf("[")+1,-1))&&(E=E.slice(0,F.index)+"["+"a".repeat(F[0].length-2)+"]"+E.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(F=this.tokenizer.rules.inline.anyPunctuation.exec(E))!=null;)E=E.slice(0,F.index)+"++"+E.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let K;for(;(F=this.tokenizer.rules.inline.blockSkip.exec(E))!=null;)K=F[2]?F[2].length:0,E=E.slice(0,F.index+K)+"["+"a".repeat(F[0].length-K-2)+"]"+E.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);E=this.options.hooks?.emStrongMask?.call({lexer:this},E)??E;let Z=!1,j="";for(;q;){Z||(j=""),Z=!1;let U;if(this.options.extensions?.inline?.some((Y)=>(U=Y.call({lexer:this},q,g))?(q=q.substring(U.raw.length),g.push(U),!0):!1))continue;if(U=this.tokenizer.escape(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.tag(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.link(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.reflink(q,this.tokens.links)){q=q.substring(U.raw.length);let Y=g.at(-1);U.type==="text"&&Y?.type==="text"?(Y.raw+=U.raw,Y.text+=U.text):g.push(U);continue}if(U=this.tokenizer.emStrong(q,E,j)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.codespan(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.br(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.del(q)){q=q.substring(U.raw.length),g.push(U);continue}if(U=this.tokenizer.autolink(q)){q=q.substring(U.raw.length),g.push(U);continue}if(!this.state.inLink&&(U=this.tokenizer.url(q))){q=q.substring(U.raw.length),g.push(U);continue}let G=q;if(this.options.extensions?.startInline){let Y=1/0,M=q.slice(1),O;this.options.extensions.startInline.forEach(($)=>{O=$.call({lexer:this},M),typeof O=="number"&&O>=0&&(Y=Math.min(Y,O))}),Y<1/0&&Y>=0&&(G=q.substring(0,Y+1))}if(U=this.tokenizer.inlineText(G)){q=q.substring(U.raw.length),U.raw.slice(-1)!=="_"&&(j=U.raw.slice(-1)),Z=!0;let Y=g.at(-1);Y?.type==="text"?(Y.raw+=U.raw,Y.text+=U.text):g.push(U);continue}if(q){let Y="Infinite loop on byte: "+q.charCodeAt(0);if(this.options.silent){console.error(Y);break}else throw new Error(Y)}}return g}},LZ=class{options;parser;constructor(A){this.options=A||eg}space(A){return""}code({text:A,lang:q,escaped:g}){let E=(q||"").match(dA.notSpaceStart)?.[0],F=A.replace(dA.endingNewline,"")+`
|
|
72
|
+
`;return E?'<pre><code class="language-'+sq(E)+'">'+(g?F:sq(F,!0))+`</code></pre>
|
|
73
|
+
`:"<pre><code>"+(g?F:sq(F,!0))+`</code></pre>
|
|
74
74
|
`}blockquote({tokens:A}){return`<blockquote>
|
|
75
75
|
${this.parser.parse(A)}</blockquote>
|
|
76
76
|
`}html({text:A}){return A}def(A){return""}heading({tokens:A,depth:q}){return`<h${q}>${this.parser.parseInline(A)}</h${q}>
|
|
@@ -86,18 +86,27 @@ ${this.parser.parse(A)}</blockquote>
|
|
|
86
86
|
`}tablerow({text:A}){return`<tr>
|
|
87
87
|
${A}</tr>
|
|
88
88
|
`}tablecell(A){let q=this.parser.parseInline(A.tokens),g=A.header?"th":"td";return(A.align?`<${g} align="${A.align}">`:`<${g}>`)+q+`</${g}>
|
|
89
|
-
`}strong({tokens:A}){return`<strong>${this.parser.parseInline(A)}</strong>`}em({tokens:A}){return`<em>${this.parser.parseInline(A)}</em>`}codespan({text:A}){return`<code>${
|
|
90
|
-
Please report this to https://github.com/markedjs/marked.`,A){let E="<p>An error occurred:</p><pre>"+uq(g.message+"",!0)+"</pre>";return q?Promise.resolve(E):E}if(q)return Promise.reject(g);throw g}}},pg=new X$;function OA(A,q){return pg.parse(A,q)}OA.options=OA.setOptions=function(A){return pg.setOptions(A),OA.defaults=pg.defaults,nQ(OA.defaults),OA};OA.getDefaults=XU;OA.defaults=ug;OA.use=function(...A){return pg.use(...A),OA.defaults=pg.defaults,nQ(OA.defaults),OA};OA.walkTokens=function(A,q){return pg.walkTokens(A,q)};OA.parseInline=pg.parseInline;OA.Parser=_q;OA.parser=_q.parse;OA.Renderer=KZ;OA.TextRenderer=IU;OA.Lexer=Mq;OA.lexer=Mq.lex;OA.Tokenizer=FZ;OA.Hooks=zE;OA.parse=OA;var{options:ML,setOptions:_L,use:$L,walkTokens:XL,parseInline:HL}=OA,LL=_q.parse,VL=Mq.lex;var H$=QA.fromHex("#9a9ea3"),L$=QA.fromHex("#252527");class jO extends kA{orientation;_value;_min;_max;_viewPortSize;_backgroundColor;_foregroundColor;_onChange;constructor(A,q){super(A,{flexShrink:0,...q});this.orientation=q.orientation,this._min=q.min??0,this._max=q.max??100,this._value=q.value??this._min,this._viewPortSize=q.viewPortSize??Math.max(1,(this._max-this._min)*0.1),this._onChange=q.onChange,this._backgroundColor=q.backgroundColor?d(q.backgroundColor):L$,this._foregroundColor=q.foregroundColor?d(q.foregroundColor):H$,this.setupMouseHandling()}get value(){return this._value}set value(A){let q=Math.max(this._min,Math.min(this._max,A));if(q!==this._value)this._value=q,this._onChange?.(q),this.emit("change",{value:q}),this.requestRender()}get min(){return this._min}set min(A){if(A!==this._min){if(this._min=A,this._value<A)this.value=A;this.requestRender()}}get max(){return this._max}set max(A){if(A!==this._max){if(this._max=A,this._value>A)this.value=A;this.requestRender()}}set viewPortSize(A){let q=Math.max(0.01,Math.min(A,this._max-this._min));if(q!==this._viewPortSize)this._viewPortSize=q,this.requestRender()}get viewPortSize(){return this._viewPortSize}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){this._backgroundColor=d(A),this.requestRender()}get foregroundColor(){return this._foregroundColor}set foregroundColor(A){this._foregroundColor=d(A),this.requestRender()}calculateDragOffsetVirtual(A){let q=this.orientation==="vertical"?this.y:this.x,g=(this.orientation==="vertical"?A.y:A.x)-q,E=Math.max(0,Math.min((this.orientation==="vertical"?this.height:this.width)*2,g*2)),F=this.getVirtualThumbStart(),K=this.getVirtualThumbSize();return Math.max(0,Math.min(K,E-F))}setupMouseHandling(){let A=!1,q=0;this.onMouseDown=(g)=>{g.stopPropagation(),g.preventDefault();let E=this.getThumbRect();if(g.x>=E.x&&g.x<E.x+E.width&&g.y>=E.y&&g.y<E.y+E.height)A=!0,q=this.calculateDragOffsetVirtual(g);else this.updateValueFromMouseDirect(g),A=!0,q=this.calculateDragOffsetVirtual(g)},this.onMouseDrag=(g)=>{if(!A)return;g.stopPropagation(),this.updateValueFromMouseWithOffset(g,q)},this.onMouseUp=(g)=>{if(A)this.updateValueFromMouseWithOffset(g,q);A=!1}}updateValueFromMouseDirect(A){let q=this.orientation==="vertical"?this.y:this.x,g=this.orientation==="vertical"?this.height:this.width,F=(this.orientation==="vertical"?A.y:A.x)-q,K=Math.max(0,Math.min(g,F)),Z=g===0?0:K/g,j=this._max-this._min,U=this._min+Z*j;this.value=U}updateValueFromMouseWithOffset(A,q){let g=this.orientation==="vertical"?this.y:this.x,E=this.orientation==="vertical"?this.height:this.width,F=this.orientation==="vertical"?A.y:A.x,K=E*2,Z=F-g,U=Math.max(0,Math.min(E,Z))*2,O=this.getVirtualThumbSize(),Y=Math.max(0,K-O),M=U-q;M=Math.max(0,Math.min(Y,M));let J=Y===0?0:M/Y,$=this._max-this._min,_=this._min+J*$;this.value=_}getThumbRect(){let A=this.getVirtualThumbSize(),q=this.getVirtualThumbStart(),g=Math.floor(q/2),E=Math.ceil((q+A)/2)-g;if(this.orientation==="vertical")return{x:this.x,y:this.y+g,width:this.width,height:Math.max(1,E)};else return{x:this.x+g,y:this.y,width:Math.max(1,E),height:this.height}}renderSelf(A){if(this.orientation==="horizontal")this.renderHorizontal(A);else this.renderVertical(A)}renderHorizontal(A){let q=this.getVirtualThumbSize(),g=this.getVirtualThumbStart(),E=g+q;A.fillRect(this.x,this.y,this.width,this.height,this._backgroundColor);let F=Math.floor(g/2),K=Math.ceil(E/2)-1,Z=Math.max(0,F),j=Math.min(this.width-1,K);for(let U=Z;U<=j;U++){let O=U*2,Y=O+2,M=Math.max(g,O),$=Math.min(E,Y)-M,_=" ";if($>=2)_="\u2588";else if(M===O)_="\u258C";else _="\u2590";for(let T=0;T<this.height;T++)A.setCellWithAlphaBlending(this.x+U,this.y+T,_,this._foregroundColor,this._backgroundColor)}}renderVertical(A){let q=this.getVirtualThumbSize(),g=this.getVirtualThumbStart(),E=g+q;A.fillRect(this.x,this.y,this.width,this.height,this._backgroundColor);let F=Math.floor(g/2),K=Math.ceil(E/2)-1,Z=Math.max(0,F),j=Math.min(this.height-1,K);for(let U=Z;U<=j;U++){let O=U*2,Y=O+2,M=Math.max(g,O),$=Math.min(E,Y)-M,_=" ";if($>=2)_="\u2588";else if($>0)if(M-O===0)_="\u2580";else _="\u2584";for(let T=0;T<this.width;T++)A.setCellWithAlphaBlending(this.x+T,this.y+U,_,this._foregroundColor,this._backgroundColor)}}getVirtualThumbSize(){let A=this.orientation==="vertical"?this.height*2:this.width*2,q=this._max-this._min;if(q===0)return A;let g=Math.max(1,this._viewPortSize),E=q+g;if(E<=g)return A;let F=g/E,K=Math.floor(A*F);return Math.max(1,Math.min(K,A))}getVirtualThumbStart(){let A=this.orientation==="vertical"?this.height*2:this.width*2,q=this._max-this._min;if(q===0)return 0;let g=(this._value-this._min)/q,E=this.getVirtualThumbSize();return Math.round(g*(A-E))}}class JU extends kA{slider;startArrow;endArrow;orientation;_focusable=!0;_scrollSize=0;_scrollPosition=0;_viewportSize=0;_showArrows=!1;_manualVisibility=!1;_onChange;scrollStep=null;get visible(){return super.visible}set visible(A){this._manualVisibility=!0,super.visible=A}resetVisibilityControl(){this._manualVisibility=!1,this.recalculateVisibility()}get scrollSize(){return this._scrollSize}get scrollPosition(){return this._scrollPosition}get viewportSize(){return this._viewportSize}set scrollSize(A){if(A===this.scrollSize)return;this._scrollSize=A,this.recalculateVisibility(),this.updateSliderFromScrollState(),this.scrollPosition=this.scrollPosition}set scrollPosition(A){let q=Math.round(Math.min(Math.max(0,A),this.scrollSize-this.viewportSize));if(q!==this._scrollPosition)this._scrollPosition=q,this.updateSliderFromScrollState()}set viewportSize(A){if(A===this.viewportSize)return;this._viewportSize=A,this.slider.viewPortSize=Math.max(1,this._viewportSize),this.recalculateVisibility(),this.updateSliderFromScrollState(),this.scrollPosition=this.scrollPosition}get showArrows(){return this._showArrows}set showArrows(A){if(A===this._showArrows)return;this._showArrows=A,this.startArrow.visible=A,this.endArrow.visible=A}constructor(A,{trackOptions:q,arrowOptions:g,orientation:E,showArrows:F=!1,...K}){super(A,{flexDirection:E==="vertical"?"column":"row",alignSelf:"stretch",alignItems:"stretch",...K});this._onChange=K.onChange,this.orientation=E,this._showArrows=F;let Z=Math.max(0,this._scrollSize-this._viewportSize),j=Math.max(1,this._viewportSize),U=q?.viewPortSize??j;this.slider=new jO(A,{orientation:E,min:0,max:Z,value:this._scrollPosition,viewPortSize:U,onChange:(J)=>{this._scrollPosition=Math.round(J),this._onChange?.(this._scrollPosition),this.emit("change",{position:this._scrollPosition})},...E==="vertical"?{width:Math.max(1,Math.min(2,this.width)),height:"100%",marginLeft:"auto"}:{width:"100%",height:1,marginTop:"auto"},flexGrow:1,flexShrink:1,...q}),this.updateSliderFromScrollState();let O=g?{foregroundColor:g.backgroundColor,backgroundColor:g.backgroundColor,attributes:g.attributes,...g}:{};this.startArrow=new MU(A,{alignSelf:"center",visible:this.showArrows,direction:this.orientation==="vertical"?"up":"left",height:this.orientation==="vertical"?1:1,...O}),this.endArrow=new MU(A,{alignSelf:"center",visible:this.showArrows,direction:this.orientation==="vertical"?"down":"right",height:this.orientation==="vertical"?1:1,...O}),this.add(this.startArrow),this.add(this.slider),this.add(this.endArrow);let Y=void 0,M=void 0;this.startArrow.onMouseDown=(J)=>{J.stopPropagation(),J.preventDefault(),this.scrollBy(-0.5,"viewport"),Y=setTimeout(()=>{this.scrollBy(-0.5,"viewport"),Y=setInterval(()=>{this.scrollBy(-0.2,"viewport")},200)},500)},this.startArrow.onMouseUp=(J)=>{J.stopPropagation(),clearInterval(Y)},this.endArrow.onMouseDown=(J)=>{J.stopPropagation(),J.preventDefault(),this.scrollBy(0.5,"viewport"),M=setTimeout(()=>{this.scrollBy(0.5,"viewport"),M=setInterval(()=>{this.scrollBy(0.2,"viewport")},200)},500)},this.endArrow.onMouseUp=(J)=>{J.stopPropagation(),clearInterval(M)}}set arrowOptions(A){Object.assign(this.startArrow,A),Object.assign(this.endArrow,A),this.requestRender()}set trackOptions(A){Object.assign(this.slider,A),this.requestRender()}updateSliderFromScrollState(){let A=Math.max(0,this._scrollSize-this._viewportSize);this.slider.min=0,this.slider.max=A,this.slider.value=Math.min(this._scrollPosition,A)}scrollBy(A,q="absolute"){let E=(q==="viewport"?this.viewportSize:q==="content"?this.scrollSize:q==="step"?this.scrollStep??1:1)*A;this.scrollPosition+=E}recalculateVisibility(){if(!this._manualVisibility){let A=this.scrollSize<=this.viewportSize?1:this.viewportSize/this.scrollSize;super.visible=A<1}}handleKeyPress(A){switch(A.name){case"left":case"h":if(this.orientation!=="horizontal")return!1;return this.scrollBy(-0.2,"viewport"),!0;case"right":case"l":if(this.orientation!=="horizontal")return!1;return this.scrollBy(0.2,"viewport"),!0;case"up":case"k":if(this.orientation!=="vertical")return!1;return this.scrollBy(-0.2,"viewport"),!0;case"down":case"j":if(this.orientation!=="vertical")return!1;return this.scrollBy(0.2,"viewport"),!0;case"pageup":return this.scrollBy(-0.5,"viewport"),!0;case"pagedown":return this.scrollBy(0.5,"viewport"),!0;case"home":return this.scrollBy(-1,"content"),!0;case"end":return this.scrollBy(1,"content"),!0}return!1}}class MU extends kA{_direction;_foregroundColor;_backgroundColor;_attributes;_arrowChars;constructor(A,q){super(A,q);if(this._direction=q.direction,this._foregroundColor=q.foregroundColor?d(q.foregroundColor):QA.fromValues(1,1,1,1),this._backgroundColor=q.backgroundColor?d(q.backgroundColor):QA.fromValues(0,0,0,0),this._attributes=q.attributes??0,this._arrowChars={up:"\u25B2",down:"\u25BC",left:"\u25C0",right:"\u25B6",...q.arrowChars},!q.width)this.width=Bun.stringWidth(this.getArrowChar())}get direction(){return this._direction}set direction(A){if(this._direction!==A)this._direction=A,this.requestRender()}get foregroundColor(){return this._foregroundColor}set foregroundColor(A){if(this._foregroundColor!==A)this._foregroundColor=d(A),this.requestRender()}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){if(this._backgroundColor!==A)this._backgroundColor=d(A),this.requestRender()}get attributes(){return this._attributes}set attributes(A){if(this._attributes!==A)this._attributes=A,this.requestRender()}set arrowChars(A){this._arrowChars={...this._arrowChars,...A},this.requestRender()}renderSelf(A){let q=this.getArrowChar();A.drawText(q,this.x,this.y,this._foregroundColor,this._backgroundColor,this._attributes)}getArrowChar(){switch(this._direction){case"up":return this._arrowChars.up;case"down":return this._arrowChars.down;case"left":return this._arrowChars.left;case"right":return this._arrowChars.right;default:return"?"}}}class UO extends s{viewport;_viewportCulling;constructor(A,q,g,E){super(A,E);this.viewport=q,this._viewportCulling=g}get viewportCulling(){return this._viewportCulling}set viewportCulling(A){this._viewportCulling=A}_getVisibleChildren(){if(this._viewportCulling)return ZU(this.viewport,this.getChildrenSortedByPrimaryAxis(),this.primaryAxis,0).map((A)=>A.num);return this.getChildrenSortedByPrimaryAxis().map((A)=>A.num)}}class z6 extends s{static idCounter=0;internalId=0;wrapper;viewport;content;horizontalScrollBar;verticalScrollBar;_focusable=!0;selectionListener;autoScrollMouseX=0;autoScrollMouseY=0;autoScrollThresholdVertical=3;autoScrollThresholdHorizontal=3;autoScrollSpeedSlow=6;autoScrollSpeedMedium=36;autoScrollSpeedFast=72;isAutoScrolling=!1;cachedAutoScrollSpeed=3;autoScrollAccumulatorX=0;autoScrollAccumulatorY=0;scrollAccumulatorX=0;scrollAccumulatorY=0;_stickyScroll;_stickyScrollTop=!1;_stickyScrollBottom=!1;_stickyScrollLeft=!1;_stickyScrollRight=!1;_stickyStart;_hasManualScroll=!1;_isApplyingStickyScroll=!1;scrollAccel;get stickyScroll(){return this._stickyScroll}set stickyScroll(A){this._stickyScroll=A,this.updateStickyState()}get stickyStart(){return this._stickyStart}set stickyStart(A){this._stickyStart=A,this.updateStickyState()}get scrollTop(){return this.verticalScrollBar.scrollPosition}set scrollTop(A){if(this.verticalScrollBar.scrollPosition=A,!this._isApplyingStickyScroll){let q=Math.max(0,this.scrollHeight-this.viewport.height);if(!this.isAtStickyPosition()&&q>1)this._hasManualScroll=!0}this.updateStickyState()}get scrollLeft(){return this.horizontalScrollBar.scrollPosition}set scrollLeft(A){if(this.horizontalScrollBar.scrollPosition=A,!this._isApplyingStickyScroll){let q=Math.max(0,this.scrollWidth-this.viewport.width);if(!this.isAtStickyPosition()&&q>1)this._hasManualScroll=!0}this.updateStickyState()}get scrollWidth(){return this.horizontalScrollBar.scrollSize}get scrollHeight(){return this.verticalScrollBar.scrollSize}updateStickyState(){if(!this._stickyScroll)return;let A=Math.max(0,this.scrollHeight-this.viewport.height),q=Math.max(0,this.scrollWidth-this.viewport.width);if(this.scrollTop<=0){if(this._stickyScrollTop=!0,this._stickyScrollBottom=!1,this._stickyStart==="top"||this._stickyStart==="bottom"&&A===0)this._hasManualScroll=!1}else if(this.scrollTop>=A){if(this._stickyScrollTop=!1,this._stickyScrollBottom=!0,this._stickyStart==="bottom")this._hasManualScroll=!1}else this._stickyScrollTop=!1,this._stickyScrollBottom=!1;if(this.scrollLeft<=0){if(this._stickyScrollLeft=!0,this._stickyScrollRight=!1,this._stickyStart==="left"||this._stickyStart==="right"&&q===0)this._hasManualScroll=!1}else if(this.scrollLeft>=q){if(this._stickyScrollLeft=!1,this._stickyScrollRight=!0,this._stickyStart==="right")this._hasManualScroll=!1}else this._stickyScrollLeft=!1,this._stickyScrollRight=!1}applyStickyStart(A){switch(this._isApplyingStickyScroll=!0,A){case"top":this._stickyScrollTop=!0,this._stickyScrollBottom=!1,this.verticalScrollBar.scrollPosition=0;break;case"bottom":this._stickyScrollTop=!1,this._stickyScrollBottom=!0,this.verticalScrollBar.scrollPosition=Math.max(0,this.scrollHeight-this.viewport.height);break;case"left":this._stickyScrollLeft=!0,this._stickyScrollRight=!1,this.horizontalScrollBar.scrollPosition=0;break;case"right":this._stickyScrollLeft=!1,this._stickyScrollRight=!0,this.horizontalScrollBar.scrollPosition=Math.max(0,this.scrollWidth-this.viewport.width);break}this._isApplyingStickyScroll=!1}constructor(A,{wrapperOptions:q,viewportOptions:g,contentOptions:E,rootOptions:F,scrollbarOptions:K,verticalScrollbarOptions:Z,horizontalScrollbarOptions:j,stickyScroll:U=!1,stickyStart:O,scrollX:Y=!1,scrollY:M=!0,scrollAcceleration:J,viewportCulling:$=!0,..._}){super(A,{flexDirection:"row",alignItems:"stretch",..._,...F});if(this.internalId=z6.idCounter++,this._stickyScroll=U,this._stickyStart=O,this.scrollAccel=J??new tj,this.wrapper=new s(A,{flexDirection:"column",flexGrow:1,...q,id:`scroll-box-wrapper-${this.internalId}`}),super.add(this.wrapper),this.viewport=new s(A,{flexDirection:"column",flexGrow:1,overflow:"hidden",onSizeChange:()=>{this.recalculateBarProps()},...g,id:`scroll-box-viewport-${this.internalId}`}),this.wrapper.add(this.viewport),this.content=new UO(A,this.viewport,$,{alignSelf:"flex-start",flexShrink:0,...Y?{minWidth:"100%"}:{minWidth:"100%",maxWidth:"100%"},...M?{minHeight:"100%"}:{minHeight:"100%",maxHeight:"100%"},onSizeChange:()=>{this.recalculateBarProps()},...E,id:`scroll-box-content-${this.internalId}`}),this.viewport.add(this.content),this.verticalScrollBar=new JU(A,{...K,...Z,arrowOptions:{...K?.arrowOptions,...Z?.arrowOptions},id:`scroll-box-vertical-scrollbar-${this.internalId}`,orientation:"vertical",onChange:(T)=>{if(this.content.translateY=-T,!this._isApplyingStickyScroll){let x=Math.max(0,this.scrollHeight-this.viewport.height);if(!this.isAtStickyPosition()&&x>1)this._hasManualScroll=!0}this.updateStickyState()}}),super.add(this.verticalScrollBar),this.horizontalScrollBar=new JU(A,{...K,...j,arrowOptions:{...K?.arrowOptions,...j?.arrowOptions},id:`scroll-box-horizontal-scrollbar-${this.internalId}`,orientation:"horizontal",onChange:(T)=>{if(this.content.translateX=-T,!this._isApplyingStickyScroll){let x=Math.max(0,this.scrollWidth-this.viewport.width);if(!this.isAtStickyPosition()&&x>1)this._hasManualScroll=!0}this.updateStickyState()}}),this.wrapper.add(this.horizontalScrollBar),this.recalculateBarProps(),O&&U)this.applyStickyStart(O);this.selectionListener=()=>{let T=this._ctx.getSelection();if(!T||!T.isSelecting)this.stopAutoScroll()},this._ctx.on("selection",this.selectionListener)}onUpdate(A){this.handleAutoScroll(A)}scrollBy(A,q="absolute"){if(typeof A==="number")this.verticalScrollBar.scrollBy(A,q);else this.verticalScrollBar.scrollBy(A.y,q),this.horizontalScrollBar.scrollBy(A.x,q)}scrollTo(A){if(typeof A==="number")this.scrollTop=A;else this.scrollTop=A.y,this.scrollLeft=A.x}isAtStickyPosition(){if(!this._stickyScroll||!this._stickyStart)return!1;let A=Math.max(0,this.scrollHeight-this.viewport.height),q=Math.max(0,this.scrollWidth-this.viewport.width);switch(this._stickyStart){case"top":return this.scrollTop===0;case"bottom":return this.scrollTop>=A;case"left":return this.scrollLeft===0;case"right":return this.scrollLeft>=q;default:return!1}}add(A,q){return this.content.add(A,q)}insertBefore(A,q){return this.content.insertBefore(A,q)}remove(A){this.content.remove(A)}getChildren(){return this.content.getChildren()}onMouseEvent(A){if(A.type==="scroll"){let q=A.scroll?.direction;if(A.modifiers.shift)q=q==="up"?"left":q==="down"?"right":q==="right"?"down":"up";let g=A.scroll?.delta??0,E=Date.now(),F=this.scrollAccel.tick(E),K=g*F;if(q==="up"){this.scrollAccumulatorY-=K;let U=Math.trunc(this.scrollAccumulatorY);if(U!==0)this.scrollTop+=U,this.scrollAccumulatorY-=U}else if(q==="down"){this.scrollAccumulatorY+=K;let U=Math.trunc(this.scrollAccumulatorY);if(U!==0)this.scrollTop+=U,this.scrollAccumulatorY-=U}else if(q==="left"){this.scrollAccumulatorX-=K;let U=Math.trunc(this.scrollAccumulatorX);if(U!==0)this.scrollLeft+=U,this.scrollAccumulatorX-=U}else if(q==="right"){this.scrollAccumulatorX+=K;let U=Math.trunc(this.scrollAccumulatorX);if(U!==0)this.scrollLeft+=U,this.scrollAccumulatorX-=U}let Z=Math.max(0,this.scrollHeight-this.viewport.height),j=Math.max(0,this.scrollWidth-this.viewport.width);if(Z>1||j>1)this._hasManualScroll=!0}if(A.type==="drag"&&A.isSelecting)this.updateAutoScroll(A.x,A.y);else if(A.type==="up")this.stopAutoScroll()}handleKeyPress(A){if(this.verticalScrollBar.handleKeyPress(A))return this._hasManualScroll=!0,this.scrollAccel.reset(),this.resetScrollAccumulators(),!0;if(this.horizontalScrollBar.handleKeyPress(A))return this._hasManualScroll=!0,this.scrollAccel.reset(),this.resetScrollAccumulators(),!0;return!1}resetScrollAccumulators(){this.scrollAccumulatorX=0,this.scrollAccumulatorY=0}startAutoScroll(A,q){if(this.stopAutoScroll(),this.autoScrollMouseX=A,this.autoScrollMouseY=q,this.cachedAutoScrollSpeed=this.getAutoScrollSpeed(A,q),this.isAutoScrolling=!0,!this.live)this.live=!0}updateAutoScroll(A,q){this.autoScrollMouseX=A,this.autoScrollMouseY=q,this.cachedAutoScrollSpeed=this.getAutoScrollSpeed(A,q);let g=this.getAutoScrollDirectionX(A),E=this.getAutoScrollDirectionY(q);if(g===0&&E===0)this.stopAutoScroll();else if(!this.isAutoScrolling)this.startAutoScroll(A,q)}stopAutoScroll(){let A=this.isAutoScrolling;if(this.isAutoScrolling=!1,this.autoScrollAccumulatorX=0,this.autoScrollAccumulatorY=0,A&&!this.hasOtherLiveReasons())this.live=!1}hasOtherLiveReasons(){return!1}handleAutoScroll(A){if(!this.isAutoScrolling)return;let q=this.getAutoScrollDirectionX(this.autoScrollMouseX),g=this.getAutoScrollDirectionY(this.autoScrollMouseY),E=this.cachedAutoScrollSpeed*(A/1000),F=!1;if(q!==0){this.autoScrollAccumulatorX+=q*E;let K=Math.trunc(this.autoScrollAccumulatorX);if(K!==0)this.scrollLeft+=K,this.autoScrollAccumulatorX-=K,F=!0}if(g!==0){this.autoScrollAccumulatorY+=g*E;let K=Math.trunc(this.autoScrollAccumulatorY);if(K!==0)this.scrollTop+=K,this.autoScrollAccumulatorY-=K,F=!0}if(F)this._ctx.requestSelectionUpdate();if(q===0&&g===0)this.stopAutoScroll()}getAutoScrollDirectionX(A){let q=A-this.x,g=q,E=this.width-q;if(g<=this.autoScrollThresholdHorizontal)return this.scrollLeft>0?-1:0;else if(E<=this.autoScrollThresholdHorizontal){let F=this.scrollWidth-this.viewport.width;return this.scrollLeft<F?1:0}return 0}getAutoScrollDirectionY(A){let q=A-this.y,g=q,E=this.height-q;if(g<=this.autoScrollThresholdVertical)return this.scrollTop>0?-1:0;else if(E<=this.autoScrollThresholdVertical){let F=this.scrollHeight-this.viewport.height;return this.scrollTop<F?1:0}return 0}getAutoScrollSpeed(A,q){let g=A-this.x,E=q-this.y,F=g,K=this.width-g,Z=E,j=this.height-E,U=Math.min(F,K,Z,j);if(U<=1)return this.autoScrollSpeedFast;else if(U<=2)return this.autoScrollSpeedMedium;else return this.autoScrollSpeedSlow}recalculateBarProps(){let A=this._isApplyingStickyScroll;if(this._isApplyingStickyScroll=!0,this.verticalScrollBar.scrollSize=this.content.height,this.verticalScrollBar.viewportSize=this.viewport.height,this.horizontalScrollBar.scrollSize=this.content.width,this.horizontalScrollBar.viewportSize=this.viewport.width,this._stickyScroll){let q=Math.max(0,this.scrollHeight-this.viewport.height),g=Math.max(0,this.scrollWidth-this.viewport.width);if(this._stickyStart&&!this._hasManualScroll)this.applyStickyStart(this._stickyStart);else{if(this._stickyScrollTop)this.scrollTop=0;else if(this._stickyScrollBottom&&q>0)this.scrollTop=q;if(this._stickyScrollLeft)this.scrollLeft=0;else if(this._stickyScrollRight&&g>0)this.scrollLeft=g}}this._isApplyingStickyScroll=A,process.nextTick(()=>{this.requestRender()})}set rootOptions(A){Object.assign(this,A),this.requestRender()}set wrapperOptions(A){Object.assign(this.wrapper,A),this.requestRender()}set viewportOptions(A){Object.assign(this.viewport,A),this.requestRender()}set contentOptions(A){Object.assign(this.content,A),this.requestRender()}set scrollbarOptions(A){Object.assign(this.verticalScrollBar,A),Object.assign(this.horizontalScrollBar,A),this.requestRender()}set verticalScrollbarOptions(A){Object.assign(this.verticalScrollBar,A),this.requestRender()}set horizontalScrollbarOptions(A){Object.assign(this.horizontalScrollBar,A),this.requestRender()}get scrollAcceleration(){return this.scrollAccel}set scrollAcceleration(A){this.scrollAccel=A}get viewportCulling(){return this.content.viewportCulling}set viewportCulling(A){this.content.viewportCulling=A,this.requestRender()}destroySelf(){if(this.selectionListener)this._ctx.off("selection",this.selectionListener),this.selectionListener=void 0;super.destroySelf()}}var V$;((A)=>{A.SELECTION_CHANGED="selectionChanged",A.ITEM_SELECTED="itemSelected"})(V$||={});var W$;((A)=>{A.SELECTION_CHANGED="selectionChanged",A.ITEM_SELECTED="itemSelected"})(W$||={});import{exec as mH}from"child_process";import{appendFileSync as N$,writeFileSync as x$}from"fs";import{join as T$}from"path";import{homedir as I$}from"os";var YO=T$(I$(),".config","hn-cli","debug.log"),GO=!1;function a$(){if(!GO)try{x$(YO,`--- HN CLI Debug Log Started: ${new Date().toISOString()} ---
|
|
91
|
-
`),
|
|
92
|
-
`)}catch{}}function
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
`)
|
|
97
|
-
|
|
89
|
+
`}strong({tokens:A}){return`<strong>${this.parser.parseInline(A)}</strong>`}em({tokens:A}){return`<em>${this.parser.parseInline(A)}</em>`}codespan({text:A}){return`<code>${sq(A,!0)}</code>`}br(A){return"<br>"}del({tokens:A}){return`<del>${this.parser.parseInline(A)}</del>`}link({href:A,title:q,tokens:g}){let E=this.parser.parseInline(g),F=$O(A);if(F===null)return E;A=F;let K='<a href="'+A+'"';return q&&(K+=' title="'+sq(q)+'"'),K+=">"+E+"</a>",K}image({href:A,title:q,text:g,tokens:E}){E&&(g=this.parser.parseInline(E,this.parser.textRenderer));let F=$O(A);if(F===null)return sq(g);A=F;let K=`<img src="${A}" alt="${g}"`;return q&&(K+=` title="${sq(q)}"`),K+=">",K}text(A){return"tokens"in A&&A.tokens?this.parser.parseInline(A.tokens):("escaped"in A)&&A.escaped?A.text:sq(A.text)}},uU=class{strong({text:A}){return A}em({text:A}){return A}codespan({text:A}){return A}del({text:A}){return A}html({text:A}){return A}text({text:A}){return A}link({text:A}){return""+A}image({text:A}){return""+A}br(){return""}checkbox({raw:A}){return A}},Vq=class A{options;renderer;textRenderer;constructor(q){this.options=q||eg,this.options.renderer=this.options.renderer||new LZ,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new uU}static parse(q,g){return new A(g).parse(q)}static parseInline(q,g){return new A(g).parseInline(q)}parse(q){let g="";for(let E=0;E<q.length;E++){let F=q[E];if(this.options.extensions?.renderers?.[F.type]){let Z=F,j=this.options.extensions.renderers[Z.type].call({parser:this},Z);if(j!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(Z.type)){g+=j||"";continue}}let K=F;switch(K.type){case"space":{g+=this.renderer.space(K);break}case"hr":{g+=this.renderer.hr(K);break}case"heading":{g+=this.renderer.heading(K);break}case"code":{g+=this.renderer.code(K);break}case"table":{g+=this.renderer.table(K);break}case"blockquote":{g+=this.renderer.blockquote(K);break}case"list":{g+=this.renderer.list(K);break}case"checkbox":{g+=this.renderer.checkbox(K);break}case"html":{g+=this.renderer.html(K);break}case"def":{g+=this.renderer.def(K);break}case"paragraph":{g+=this.renderer.paragraph(K);break}case"text":{g+=this.renderer.text(K);break}default:{let Z='Token with "'+K.type+'" type was not found.';if(this.options.silent)return console.error(Z),"";throw new Error(Z)}}}return g}parseInline(q,g=this.renderer){let E="";for(let F=0;F<q.length;F++){let K=q[F];if(this.options.extensions?.renderers?.[K.type]){let j=this.options.extensions.renderers[K.type].call({parser:this},K);if(j!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(K.type)){E+=j||"";continue}}let Z=K;switch(Z.type){case"escape":{E+=g.text(Z);break}case"html":{E+=g.html(Z);break}case"link":{E+=g.link(Z);break}case"image":{E+=g.image(Z);break}case"checkbox":{E+=g.checkbox(Z);break}case"strong":{E+=g.strong(Z);break}case"em":{E+=g.em(Z);break}case"codespan":{E+=g.codespan(Z);break}case"br":{E+=g.br(Z);break}case"del":{E+=g.del(Z);break}case"text":{E+=g.text(Z);break}default:{let j='Token with "'+Z.type+'" type was not found.';if(this.options.silent)return console.error(j),"";throw new Error(j)}}}return E}},dE=class{options;block;constructor(A){this.options=A||eg}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(A){return A}postprocess(A){return A}processAllTokens(A){return A}emStrongMask(A){return A}provideLexer(){return this.block?Lq.lex:Lq.lexInline}provideParser(){return this.block?Vq.parse:Vq.parseInline}},rX=class{defaults=yU();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=Vq;Renderer=LZ;TextRenderer=uU;Lexer=Lq;Tokenizer=HZ;Hooks=dE;constructor(...A){this.use(...A)}walkTokens(A,q){let g=[];for(let E of A)switch(g=g.concat(q.call(this,E)),E.type){case"table":{let F=E;for(let K of F.header)g=g.concat(this.walkTokens(K.tokens,q));for(let K of F.rows)for(let Z of K)g=g.concat(this.walkTokens(Z.tokens,q));break}case"list":{let F=E;g=g.concat(this.walkTokens(F.items,q));break}default:{let F=E;this.defaults.extensions?.childTokens?.[F.type]?this.defaults.extensions.childTokens[F.type].forEach((K)=>{let Z=F[K].flat(1/0);g=g.concat(this.walkTokens(Z,q))}):F.tokens&&(g=g.concat(this.walkTokens(F.tokens,q)))}}return g}use(...A){let q=this.defaults.extensions||{renderers:{},childTokens:{}};return A.forEach((g)=>{let E={...g};if(E.async=this.defaults.async||E.async||!1,g.extensions&&(g.extensions.forEach((F)=>{if(!F.name)throw new Error("extension name required");if("renderer"in F){let K=q.renderers[F.name];K?q.renderers[F.name]=function(...Z){let j=F.renderer.apply(this,Z);return j===!1&&(j=K.apply(this,Z)),j}:q.renderers[F.name]=F.renderer}if("tokenizer"in F){if(!F.level||F.level!=="block"&&F.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let K=q[F.level];K?K.unshift(F.tokenizer):q[F.level]=[F.tokenizer],F.start&&(F.level==="block"?q.startBlock?q.startBlock.push(F.start):q.startBlock=[F.start]:F.level==="inline"&&(q.startInline?q.startInline.push(F.start):q.startInline=[F.start]))}"childTokens"in F&&F.childTokens&&(q.childTokens[F.name]=F.childTokens)}),E.extensions=q),g.renderer){let F=this.defaults.renderer||new LZ(this.defaults);for(let K in g.renderer){if(!(K in F))throw new Error(`renderer '${K}' does not exist`);if(["options","parser"].includes(K))continue;let Z=K,j=g.renderer[Z],U=F[Z];F[Z]=(...G)=>{let Y=j.apply(F,G);return Y===!1&&(Y=U.apply(F,G)),Y||""}}E.renderer=F}if(g.tokenizer){let F=this.defaults.tokenizer||new HZ(this.defaults);for(let K in g.tokenizer){if(!(K in F))throw new Error(`tokenizer '${K}' does not exist`);if(["options","rules","lexer"].includes(K))continue;let Z=K,j=g.tokenizer[Z],U=F[Z];F[Z]=(...G)=>{let Y=j.apply(F,G);return Y===!1&&(Y=U.apply(F,G)),Y}}E.tokenizer=F}if(g.hooks){let F=this.defaults.hooks||new dE;for(let K in g.hooks){if(!(K in F))throw new Error(`hook '${K}' does not exist`);if(["options","block"].includes(K))continue;let Z=K,j=g.hooks[Z],U=F[Z];dE.passThroughHooks.has(K)?F[Z]=(G)=>{if(this.defaults.async&&dE.passThroughHooksRespectAsync.has(K))return(async()=>{let M=await j.call(F,G);return U.call(F,M)})();let Y=j.call(F,G);return U.call(F,Y)}:F[Z]=(...G)=>{if(this.defaults.async)return(async()=>{let M=await j.apply(F,G);return M===!1&&(M=await U.apply(F,G)),M})();let Y=j.apply(F,G);return Y===!1&&(Y=U.apply(F,G)),Y}}E.hooks=F}if(g.walkTokens){let F=this.defaults.walkTokens,K=g.walkTokens;E.walkTokens=function(Z){let j=[];return j.push(K.call(this,Z)),F&&(j=j.concat(F.call(this,Z))),j}}this.defaults={...this.defaults,...E}}),this}setOptions(A){return this.defaults={...this.defaults,...A},this}lexer(A,q){return Lq.lex(A,q??this.defaults)}parser(A,q){return Vq.parse(A,q??this.defaults)}parseMarkdown(A){return(q,g)=>{let E={...g},F={...this.defaults,...E},K=this.onError(!!F.silent,!!F.async);if(this.defaults.async===!0&&E.async===!1)return K(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof q>"u"||q===null)return K(new Error("marked(): input parameter is undefined or null"));if(typeof q!="string")return K(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(q)+", string expected"));if(F.hooks&&(F.hooks.options=F,F.hooks.block=A),F.async)return(async()=>{let Z=F.hooks?await F.hooks.preprocess(q):q,j=await(F.hooks?await F.hooks.provideLexer():A?Lq.lex:Lq.lexInline)(Z,F),U=F.hooks?await F.hooks.processAllTokens(j):j;F.walkTokens&&await Promise.all(this.walkTokens(U,F.walkTokens));let G=await(F.hooks?await F.hooks.provideParser():A?Vq.parse:Vq.parseInline)(U,F);return F.hooks?await F.hooks.postprocess(G):G})().catch(K);try{F.hooks&&(q=F.hooks.preprocess(q));let Z=(F.hooks?F.hooks.provideLexer():A?Lq.lex:Lq.lexInline)(q,F);F.hooks&&(Z=F.hooks.processAllTokens(Z)),F.walkTokens&&this.walkTokens(Z,F.walkTokens);let j=(F.hooks?F.hooks.provideParser():A?Vq.parse:Vq.parseInline)(Z,F);return F.hooks&&(j=F.hooks.postprocess(j)),j}catch(Z){return K(Z)}}}onError(A,q){return(g)=>{if(g.message+=`
|
|
90
|
+
Please report this to https://github.com/markedjs/marked.`,A){let E="<p>An error occurred:</p><pre>"+sq(g.message+"",!0)+"</pre>";return q?Promise.resolve(E):E}if(q)return Promise.reject(g);throw g}}},og=new rX;function JA(A,q){return og.parse(A,q)}JA.options=JA.setOptions=function(A){return og.setOptions(A),JA.defaults=og.defaults,wO(JA.defaults),JA};JA.getDefaults=yU;JA.defaults=eg;JA.use=function(...A){return og.use(...A),JA.defaults=og.defaults,wO(JA.defaults),JA};JA.walkTokens=function(A,q){return og.walkTokens(A,q)};JA.parseInline=og.parseInline;JA.Parser=Vq;JA.parser=Vq.parse;JA.Renderer=LZ;JA.TextRenderer=uU;JA.Lexer=Lq;JA.lexer=Lq.lex;JA.Tokenizer=HZ;JA.Hooks=dE;JA.parse=JA;var{options:JW,setOptions:MW,use:_W,walkTokens:$W,parseInline:XW}=JA,HW=Vq.parse,LW=Lq.lex;var oX=OA.fromHex("#9a9ea3"),eX=OA.fromHex("#252527");class pO extends DA{orientation;_value;_min;_max;_viewPortSize;_backgroundColor;_foregroundColor;_onChange;constructor(A,q){super(A,{flexShrink:0,...q});this.orientation=q.orientation,this._min=q.min??0,this._max=q.max??100,this._value=q.value??this._min,this._viewPortSize=q.viewPortSize??Math.max(1,(this._max-this._min)*0.1),this._onChange=q.onChange,this._backgroundColor=q.backgroundColor?u(q.backgroundColor):eX,this._foregroundColor=q.foregroundColor?u(q.foregroundColor):oX,this.setupMouseHandling()}get value(){return this._value}set value(A){let q=Math.max(this._min,Math.min(this._max,A));if(q!==this._value)this._value=q,this._onChange?.(q),this.emit("change",{value:q}),this.requestRender()}get min(){return this._min}set min(A){if(A!==this._min){if(this._min=A,this._value<A)this.value=A;this.requestRender()}}get max(){return this._max}set max(A){if(A!==this._max){if(this._max=A,this._value>A)this.value=A;this.requestRender()}}set viewPortSize(A){let q=Math.max(0.01,Math.min(A,this._max-this._min));if(q!==this._viewPortSize)this._viewPortSize=q,this.requestRender()}get viewPortSize(){return this._viewPortSize}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){this._backgroundColor=u(A),this.requestRender()}get foregroundColor(){return this._foregroundColor}set foregroundColor(A){this._foregroundColor=u(A),this.requestRender()}calculateDragOffsetVirtual(A){let q=this.orientation==="vertical"?this.y:this.x,g=(this.orientation==="vertical"?A.y:A.x)-q,E=Math.max(0,Math.min((this.orientation==="vertical"?this.height:this.width)*2,g*2)),F=this.getVirtualThumbStart(),K=this.getVirtualThumbSize();return Math.max(0,Math.min(K,E-F))}setupMouseHandling(){let A=!1,q=0;this.onMouseDown=(g)=>{g.stopPropagation(),g.preventDefault();let E=this.getThumbRect();if(g.x>=E.x&&g.x<E.x+E.width&&g.y>=E.y&&g.y<E.y+E.height)A=!0,q=this.calculateDragOffsetVirtual(g);else this.updateValueFromMouseDirect(g),A=!0,q=this.calculateDragOffsetVirtual(g)},this.onMouseDrag=(g)=>{if(!A)return;g.stopPropagation(),this.updateValueFromMouseWithOffset(g,q)},this.onMouseUp=(g)=>{if(A)this.updateValueFromMouseWithOffset(g,q);A=!1}}updateValueFromMouseDirect(A){let q=this.orientation==="vertical"?this.y:this.x,g=this.orientation==="vertical"?this.height:this.width,F=(this.orientation==="vertical"?A.y:A.x)-q,K=Math.max(0,Math.min(g,F)),Z=g===0?0:K/g,j=this._max-this._min,U=this._min+Z*j;this.value=U}updateValueFromMouseWithOffset(A,q){let g=this.orientation==="vertical"?this.y:this.x,E=this.orientation==="vertical"?this.height:this.width,F=this.orientation==="vertical"?A.y:A.x,K=E*2,Z=F-g,U=Math.max(0,Math.min(E,Z))*2,G=this.getVirtualThumbSize(),Y=Math.max(0,K-G),M=U-q;M=Math.max(0,Math.min(Y,M));let O=Y===0?0:M/Y,$=this._max-this._min,_=this._min+O*$;this.value=_}getThumbRect(){let A=this.getVirtualThumbSize(),q=this.getVirtualThumbStart(),g=Math.floor(q/2),E=Math.ceil((q+A)/2)-g;if(this.orientation==="vertical")return{x:this.x,y:this.y+g,width:this.width,height:Math.max(1,E)};else return{x:this.x+g,y:this.y,width:Math.max(1,E),height:this.height}}renderSelf(A){if(this.orientation==="horizontal")this.renderHorizontal(A);else this.renderVertical(A)}renderHorizontal(A){let q=this.getVirtualThumbSize(),g=this.getVirtualThumbStart(),E=g+q;A.fillRect(this.x,this.y,this.width,this.height,this._backgroundColor);let F=Math.floor(g/2),K=Math.ceil(E/2)-1,Z=Math.max(0,F),j=Math.min(this.width-1,K);for(let U=Z;U<=j;U++){let G=U*2,Y=G+2,M=Math.max(g,G),$=Math.min(E,Y)-M,_=" ";if($>=2)_="\u2588";else if(M===G)_="\u258C";else _="\u2590";for(let x=0;x<this.height;x++)A.setCellWithAlphaBlending(this.x+U,this.y+x,_,this._foregroundColor,this._backgroundColor)}}renderVertical(A){let q=this.getVirtualThumbSize(),g=this.getVirtualThumbStart(),E=g+q;A.fillRect(this.x,this.y,this.width,this.height,this._backgroundColor);let F=Math.floor(g/2),K=Math.ceil(E/2)-1,Z=Math.max(0,F),j=Math.min(this.height-1,K);for(let U=Z;U<=j;U++){let G=U*2,Y=G+2,M=Math.max(g,G),$=Math.min(E,Y)-M,_=" ";if($>=2)_="\u2588";else if($>0)if(M-G===0)_="\u2580";else _="\u2584";for(let x=0;x<this.width;x++)A.setCellWithAlphaBlending(this.x+x,this.y+U,_,this._foregroundColor,this._backgroundColor)}}getVirtualThumbSize(){let A=this.orientation==="vertical"?this.height*2:this.width*2,q=this._max-this._min;if(q===0)return A;let g=Math.max(1,this._viewPortSize),E=q+g;if(E<=g)return A;let F=g/E,K=Math.floor(A*F);return Math.max(1,Math.min(K,A))}getVirtualThumbStart(){let A=this.orientation==="vertical"?this.height*2:this.width*2,q=this._max-this._min;if(q===0)return 0;let g=(this._value-this._min)/q,E=this.getVirtualThumbSize();return Math.round(g*(A-E))}}class wU extends DA{slider;startArrow;endArrow;orientation;_focusable=!0;_scrollSize=0;_scrollPosition=0;_viewportSize=0;_showArrows=!1;_manualVisibility=!1;_onChange;scrollStep=null;get visible(){return super.visible}set visible(A){this._manualVisibility=!0,super.visible=A}resetVisibilityControl(){this._manualVisibility=!1,this.recalculateVisibility()}get scrollSize(){return this._scrollSize}get scrollPosition(){return this._scrollPosition}get viewportSize(){return this._viewportSize}set scrollSize(A){if(A===this.scrollSize)return;this._scrollSize=A,this.recalculateVisibility(),this.updateSliderFromScrollState(),this.scrollPosition=this.scrollPosition}set scrollPosition(A){let q=Math.round(Math.min(Math.max(0,A),this.scrollSize-this.viewportSize));if(q!==this._scrollPosition)this._scrollPosition=q,this.updateSliderFromScrollState()}set viewportSize(A){if(A===this.viewportSize)return;this._viewportSize=A,this.slider.viewPortSize=Math.max(1,this._viewportSize),this.recalculateVisibility(),this.updateSliderFromScrollState(),this.scrollPosition=this.scrollPosition}get showArrows(){return this._showArrows}set showArrows(A){if(A===this._showArrows)return;this._showArrows=A,this.startArrow.visible=A,this.endArrow.visible=A}constructor(A,{trackOptions:q,arrowOptions:g,orientation:E,showArrows:F=!1,...K}){super(A,{flexDirection:E==="vertical"?"column":"row",alignSelf:"stretch",alignItems:"stretch",...K});this._onChange=K.onChange,this.orientation=E,this._showArrows=F;let Z=Math.max(0,this._scrollSize-this._viewportSize),j=Math.max(1,this._viewportSize),U=q?.viewPortSize??j;this.slider=new pO(A,{orientation:E,min:0,max:Z,value:this._scrollPosition,viewPortSize:U,onChange:(O)=>{this._scrollPosition=Math.round(O),this._onChange?.(this._scrollPosition),this.emit("change",{position:this._scrollPosition})},...E==="vertical"?{width:Math.max(1,Math.min(2,this.width)),height:"100%",marginLeft:"auto"}:{width:"100%",height:1,marginTop:"auto"},flexGrow:1,flexShrink:1,...q}),this.updateSliderFromScrollState();let G=g?{foregroundColor:g.backgroundColor,backgroundColor:g.backgroundColor,attributes:g.attributes,...g}:{};this.startArrow=new CU(A,{alignSelf:"center",visible:this.showArrows,direction:this.orientation==="vertical"?"up":"left",height:this.orientation==="vertical"?1:1,...G}),this.endArrow=new CU(A,{alignSelf:"center",visible:this.showArrows,direction:this.orientation==="vertical"?"down":"right",height:this.orientation==="vertical"?1:1,...G}),this.add(this.startArrow),this.add(this.slider),this.add(this.endArrow);let Y=void 0,M=void 0;this.startArrow.onMouseDown=(O)=>{O.stopPropagation(),O.preventDefault(),this.scrollBy(-0.5,"viewport"),Y=setTimeout(()=>{this.scrollBy(-0.5,"viewport"),Y=setInterval(()=>{this.scrollBy(-0.2,"viewport")},200)},500)},this.startArrow.onMouseUp=(O)=>{O.stopPropagation(),clearInterval(Y)},this.endArrow.onMouseDown=(O)=>{O.stopPropagation(),O.preventDefault(),this.scrollBy(0.5,"viewport"),M=setTimeout(()=>{this.scrollBy(0.5,"viewport"),M=setInterval(()=>{this.scrollBy(0.2,"viewport")},200)},500)},this.endArrow.onMouseUp=(O)=>{O.stopPropagation(),clearInterval(M)}}set arrowOptions(A){Object.assign(this.startArrow,A),Object.assign(this.endArrow,A),this.requestRender()}set trackOptions(A){Object.assign(this.slider,A),this.requestRender()}updateSliderFromScrollState(){let A=Math.max(0,this._scrollSize-this._viewportSize);this.slider.min=0,this.slider.max=A,this.slider.value=Math.min(this._scrollPosition,A)}scrollBy(A,q="absolute"){let E=(q==="viewport"?this.viewportSize:q==="content"?this.scrollSize:q==="step"?this.scrollStep??1:1)*A;this.scrollPosition+=E}recalculateVisibility(){if(!this._manualVisibility){let A=this.scrollSize<=this.viewportSize?1:this.viewportSize/this.scrollSize;super.visible=A<1}}handleKeyPress(A){switch(A.name){case"left":case"h":if(this.orientation!=="horizontal")return!1;return this.scrollBy(-0.2,"viewport"),!0;case"right":case"l":if(this.orientation!=="horizontal")return!1;return this.scrollBy(0.2,"viewport"),!0;case"up":case"k":if(this.orientation!=="vertical")return!1;return this.scrollBy(-0.2,"viewport"),!0;case"down":case"j":if(this.orientation!=="vertical")return!1;return this.scrollBy(0.2,"viewport"),!0;case"pageup":return this.scrollBy(-0.5,"viewport"),!0;case"pagedown":return this.scrollBy(0.5,"viewport"),!0;case"home":return this.scrollBy(-1,"content"),!0;case"end":return this.scrollBy(1,"content"),!0}return!1}}class CU extends DA{_direction;_foregroundColor;_backgroundColor;_attributes;_arrowChars;constructor(A,q){super(A,q);if(this._direction=q.direction,this._foregroundColor=q.foregroundColor?u(q.foregroundColor):OA.fromValues(1,1,1,1),this._backgroundColor=q.backgroundColor?u(q.backgroundColor):OA.fromValues(0,0,0,0),this._attributes=q.attributes??0,this._arrowChars={up:"\u25B2",down:"\u25BC",left:"\u25C0",right:"\u25B6",...q.arrowChars},!q.width)this.width=Bun.stringWidth(this.getArrowChar())}get direction(){return this._direction}set direction(A){if(this._direction!==A)this._direction=A,this.requestRender()}get foregroundColor(){return this._foregroundColor}set foregroundColor(A){if(this._foregroundColor!==A)this._foregroundColor=u(A),this.requestRender()}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){if(this._backgroundColor!==A)this._backgroundColor=u(A),this.requestRender()}get attributes(){return this._attributes}set attributes(A){if(this._attributes!==A)this._attributes=A,this.requestRender()}set arrowChars(A){this._arrowChars={...this._arrowChars,...A},this.requestRender()}renderSelf(A){let q=this.getArrowChar();A.drawText(q,this.x,this.y,this._foregroundColor,this._backgroundColor,this._attributes)}getArrowChar(){switch(this._direction){case"up":return this._arrowChars.up;case"down":return this._arrowChars.down;case"left":return this._arrowChars.left;case"right":return this._arrowChars.right;default:return"?"}}}class uO extends b{viewport;_viewportCulling;constructor(A,q,g,E){super(A,E);this.viewport=q,this._viewportCulling=g}get viewportCulling(){return this._viewportCulling}set viewportCulling(A){this._viewportCulling=A}_getVisibleChildren(){if(this._viewportCulling)return PU(this.viewport,this.getChildrenSortedByPrimaryAxis(),this.primaryAxis,0).map((A)=>A.num);return this.getChildrenSortedByPrimaryAxis().map((A)=>A.num)}}class Lg extends b{static idCounter=0;internalId=0;wrapper;viewport;content;horizontalScrollBar;verticalScrollBar;_focusable=!0;selectionListener;autoScrollMouseX=0;autoScrollMouseY=0;autoScrollThresholdVertical=3;autoScrollThresholdHorizontal=3;autoScrollSpeedSlow=6;autoScrollSpeedMedium=36;autoScrollSpeedFast=72;isAutoScrolling=!1;cachedAutoScrollSpeed=3;autoScrollAccumulatorX=0;autoScrollAccumulatorY=0;scrollAccumulatorX=0;scrollAccumulatorY=0;_stickyScroll;_stickyScrollTop=!1;_stickyScrollBottom=!1;_stickyScrollLeft=!1;_stickyScrollRight=!1;_stickyStart;_hasManualScroll=!1;_isApplyingStickyScroll=!1;scrollAccel;get stickyScroll(){return this._stickyScroll}set stickyScroll(A){this._stickyScroll=A,this.updateStickyState()}get stickyStart(){return this._stickyStart}set stickyStart(A){this._stickyStart=A,this.updateStickyState()}get scrollTop(){return this.verticalScrollBar.scrollPosition}set scrollTop(A){if(this.verticalScrollBar.scrollPosition=A,!this._isApplyingStickyScroll){let q=Math.max(0,this.scrollHeight-this.viewport.height);if(!this.isAtStickyPosition()&&q>1)this._hasManualScroll=!0}this.updateStickyState()}get scrollLeft(){return this.horizontalScrollBar.scrollPosition}set scrollLeft(A){if(this.horizontalScrollBar.scrollPosition=A,!this._isApplyingStickyScroll){let q=Math.max(0,this.scrollWidth-this.viewport.width);if(!this.isAtStickyPosition()&&q>1)this._hasManualScroll=!0}this.updateStickyState()}get scrollWidth(){return this.horizontalScrollBar.scrollSize}get scrollHeight(){return this.verticalScrollBar.scrollSize}updateStickyState(){if(!this._stickyScroll)return;let A=Math.max(0,this.scrollHeight-this.viewport.height),q=Math.max(0,this.scrollWidth-this.viewport.width);if(this.scrollTop<=0){if(this._stickyScrollTop=!0,this._stickyScrollBottom=!1,this._stickyStart==="top"||this._stickyStart==="bottom"&&A===0)this._hasManualScroll=!1}else if(this.scrollTop>=A){if(this._stickyScrollTop=!1,this._stickyScrollBottom=!0,this._stickyStart==="bottom")this._hasManualScroll=!1}else this._stickyScrollTop=!1,this._stickyScrollBottom=!1;if(this.scrollLeft<=0){if(this._stickyScrollLeft=!0,this._stickyScrollRight=!1,this._stickyStart==="left"||this._stickyStart==="right"&&q===0)this._hasManualScroll=!1}else if(this.scrollLeft>=q){if(this._stickyScrollLeft=!1,this._stickyScrollRight=!0,this._stickyStart==="right")this._hasManualScroll=!1}else this._stickyScrollLeft=!1,this._stickyScrollRight=!1}applyStickyStart(A){switch(this._isApplyingStickyScroll=!0,A){case"top":this._stickyScrollTop=!0,this._stickyScrollBottom=!1,this.verticalScrollBar.scrollPosition=0;break;case"bottom":this._stickyScrollTop=!1,this._stickyScrollBottom=!0,this.verticalScrollBar.scrollPosition=Math.max(0,this.scrollHeight-this.viewport.height);break;case"left":this._stickyScrollLeft=!0,this._stickyScrollRight=!1,this.horizontalScrollBar.scrollPosition=0;break;case"right":this._stickyScrollLeft=!1,this._stickyScrollRight=!0,this.horizontalScrollBar.scrollPosition=Math.max(0,this.scrollWidth-this.viewport.width);break}this._isApplyingStickyScroll=!1}constructor(A,{wrapperOptions:q,viewportOptions:g,contentOptions:E,rootOptions:F,scrollbarOptions:K,verticalScrollbarOptions:Z,horizontalScrollbarOptions:j,stickyScroll:U=!1,stickyStart:G,scrollX:Y=!1,scrollY:M=!0,scrollAcceleration:O,viewportCulling:$=!0,..._}){super(A,{flexDirection:"row",alignItems:"stretch",..._,...F});if(this.internalId=Lg.idCounter++,this._stickyScroll=U,this._stickyStart=G,this.scrollAccel=O??new MU,this.wrapper=new b(A,{flexDirection:"column",flexGrow:1,...q,id:`scroll-box-wrapper-${this.internalId}`}),super.add(this.wrapper),this.viewport=new b(A,{flexDirection:"column",flexGrow:1,overflow:"hidden",onSizeChange:()=>{this.recalculateBarProps()},...g,id:`scroll-box-viewport-${this.internalId}`}),this.wrapper.add(this.viewport),this.content=new uO(A,this.viewport,$,{alignSelf:"flex-start",flexShrink:0,...Y?{minWidth:"100%"}:{minWidth:"100%",maxWidth:"100%"},...M?{minHeight:"100%"}:{minHeight:"100%",maxHeight:"100%"},onSizeChange:()=>{this.recalculateBarProps()},...E,id:`scroll-box-content-${this.internalId}`}),this.viewport.add(this.content),this.verticalScrollBar=new wU(A,{...K,...Z,arrowOptions:{...K?.arrowOptions,...Z?.arrowOptions},id:`scroll-box-vertical-scrollbar-${this.internalId}`,orientation:"vertical",onChange:(x)=>{if(this.content.translateY=-x,!this._isApplyingStickyScroll){let N=Math.max(0,this.scrollHeight-this.viewport.height);if(!this.isAtStickyPosition()&&N>1)this._hasManualScroll=!0}this.updateStickyState()}}),super.add(this.verticalScrollBar),this.horizontalScrollBar=new wU(A,{...K,...j,arrowOptions:{...K?.arrowOptions,...j?.arrowOptions},id:`scroll-box-horizontal-scrollbar-${this.internalId}`,orientation:"horizontal",onChange:(x)=>{if(this.content.translateX=-x,!this._isApplyingStickyScroll){let N=Math.max(0,this.scrollWidth-this.viewport.width);if(!this.isAtStickyPosition()&&N>1)this._hasManualScroll=!0}this.updateStickyState()}}),this.wrapper.add(this.horizontalScrollBar),this.recalculateBarProps(),G&&U)this.applyStickyStart(G);this.selectionListener=()=>{let x=this._ctx.getSelection();if(!x||!x.isSelecting)this.stopAutoScroll()},this._ctx.on("selection",this.selectionListener)}onUpdate(A){this.handleAutoScroll(A)}scrollBy(A,q="absolute"){if(typeof A==="number")this.verticalScrollBar.scrollBy(A,q);else this.verticalScrollBar.scrollBy(A.y,q),this.horizontalScrollBar.scrollBy(A.x,q)}scrollTo(A){if(typeof A==="number")this.scrollTop=A;else this.scrollTop=A.y,this.scrollLeft=A.x}isAtStickyPosition(){if(!this._stickyScroll||!this._stickyStart)return!1;let A=Math.max(0,this.scrollHeight-this.viewport.height),q=Math.max(0,this.scrollWidth-this.viewport.width);switch(this._stickyStart){case"top":return this.scrollTop===0;case"bottom":return this.scrollTop>=A;case"left":return this.scrollLeft===0;case"right":return this.scrollLeft>=q;default:return!1}}add(A,q){return this.content.add(A,q)}insertBefore(A,q){return this.content.insertBefore(A,q)}remove(A){this.content.remove(A)}getChildren(){return this.content.getChildren()}onMouseEvent(A){if(A.type==="scroll"){let q=A.scroll?.direction;if(A.modifiers.shift)q=q==="up"?"left":q==="down"?"right":q==="right"?"down":"up";let g=A.scroll?.delta??0,E=Date.now(),F=this.scrollAccel.tick(E),K=g*F;if(q==="up"){this.scrollAccumulatorY-=K;let U=Math.trunc(this.scrollAccumulatorY);if(U!==0)this.scrollTop+=U,this.scrollAccumulatorY-=U}else if(q==="down"){this.scrollAccumulatorY+=K;let U=Math.trunc(this.scrollAccumulatorY);if(U!==0)this.scrollTop+=U,this.scrollAccumulatorY-=U}else if(q==="left"){this.scrollAccumulatorX-=K;let U=Math.trunc(this.scrollAccumulatorX);if(U!==0)this.scrollLeft+=U,this.scrollAccumulatorX-=U}else if(q==="right"){this.scrollAccumulatorX+=K;let U=Math.trunc(this.scrollAccumulatorX);if(U!==0)this.scrollLeft+=U,this.scrollAccumulatorX-=U}let Z=Math.max(0,this.scrollHeight-this.viewport.height),j=Math.max(0,this.scrollWidth-this.viewport.width);if(Z>1||j>1)this._hasManualScroll=!0}if(A.type==="drag"&&A.isSelecting)this.updateAutoScroll(A.x,A.y);else if(A.type==="up")this.stopAutoScroll()}handleKeyPress(A){if(this.verticalScrollBar.handleKeyPress(A))return this._hasManualScroll=!0,this.scrollAccel.reset(),this.resetScrollAccumulators(),!0;if(this.horizontalScrollBar.handleKeyPress(A))return this._hasManualScroll=!0,this.scrollAccel.reset(),this.resetScrollAccumulators(),!0;return!1}resetScrollAccumulators(){this.scrollAccumulatorX=0,this.scrollAccumulatorY=0}startAutoScroll(A,q){if(this.stopAutoScroll(),this.autoScrollMouseX=A,this.autoScrollMouseY=q,this.cachedAutoScrollSpeed=this.getAutoScrollSpeed(A,q),this.isAutoScrolling=!0,!this.live)this.live=!0}updateAutoScroll(A,q){this.autoScrollMouseX=A,this.autoScrollMouseY=q,this.cachedAutoScrollSpeed=this.getAutoScrollSpeed(A,q);let g=this.getAutoScrollDirectionX(A),E=this.getAutoScrollDirectionY(q);if(g===0&&E===0)this.stopAutoScroll();else if(!this.isAutoScrolling)this.startAutoScroll(A,q)}stopAutoScroll(){let A=this.isAutoScrolling;if(this.isAutoScrolling=!1,this.autoScrollAccumulatorX=0,this.autoScrollAccumulatorY=0,A&&!this.hasOtherLiveReasons())this.live=!1}hasOtherLiveReasons(){return!1}handleAutoScroll(A){if(!this.isAutoScrolling)return;let q=this.getAutoScrollDirectionX(this.autoScrollMouseX),g=this.getAutoScrollDirectionY(this.autoScrollMouseY),E=this.cachedAutoScrollSpeed*(A/1000),F=!1;if(q!==0){this.autoScrollAccumulatorX+=q*E;let K=Math.trunc(this.autoScrollAccumulatorX);if(K!==0)this.scrollLeft+=K,this.autoScrollAccumulatorX-=K,F=!0}if(g!==0){this.autoScrollAccumulatorY+=g*E;let K=Math.trunc(this.autoScrollAccumulatorY);if(K!==0)this.scrollTop+=K,this.autoScrollAccumulatorY-=K,F=!0}if(F)this._ctx.requestSelectionUpdate();if(q===0&&g===0)this.stopAutoScroll()}getAutoScrollDirectionX(A){let q=A-this.x,g=q,E=this.width-q;if(g<=this.autoScrollThresholdHorizontal)return this.scrollLeft>0?-1:0;else if(E<=this.autoScrollThresholdHorizontal){let F=this.scrollWidth-this.viewport.width;return this.scrollLeft<F?1:0}return 0}getAutoScrollDirectionY(A){let q=A-this.y,g=q,E=this.height-q;if(g<=this.autoScrollThresholdVertical)return this.scrollTop>0?-1:0;else if(E<=this.autoScrollThresholdVertical){let F=this.scrollHeight-this.viewport.height;return this.scrollTop<F?1:0}return 0}getAutoScrollSpeed(A,q){let g=A-this.x,E=q-this.y,F=g,K=this.width-g,Z=E,j=this.height-E,U=Math.min(F,K,Z,j);if(U<=1)return this.autoScrollSpeedFast;else if(U<=2)return this.autoScrollSpeedMedium;else return this.autoScrollSpeedSlow}recalculateBarProps(){let A=this._isApplyingStickyScroll;if(this._isApplyingStickyScroll=!0,this.verticalScrollBar.scrollSize=this.content.height,this.verticalScrollBar.viewportSize=this.viewport.height,this.horizontalScrollBar.scrollSize=this.content.width,this.horizontalScrollBar.viewportSize=this.viewport.width,this._stickyScroll){let q=Math.max(0,this.scrollHeight-this.viewport.height),g=Math.max(0,this.scrollWidth-this.viewport.width);if(this._stickyStart&&!this._hasManualScroll)this.applyStickyStart(this._stickyStart);else{if(this._stickyScrollTop)this.scrollTop=0;else if(this._stickyScrollBottom&&q>0)this.scrollTop=q;if(this._stickyScrollLeft)this.scrollLeft=0;else if(this._stickyScrollRight&&g>0)this.scrollLeft=g}}this._isApplyingStickyScroll=A,process.nextTick(()=>{this.requestRender()})}set rootOptions(A){Object.assign(this,A),this.requestRender()}set wrapperOptions(A){Object.assign(this.wrapper,A),this.requestRender()}set viewportOptions(A){Object.assign(this.viewport,A),this.requestRender()}set contentOptions(A){Object.assign(this.content,A),this.requestRender()}set scrollbarOptions(A){Object.assign(this.verticalScrollBar,A),Object.assign(this.horizontalScrollBar,A),this.requestRender()}set verticalScrollbarOptions(A){Object.assign(this.verticalScrollBar,A),this.requestRender()}set horizontalScrollbarOptions(A){Object.assign(this.horizontalScrollBar,A),this.requestRender()}get scrollAcceleration(){return this.scrollAccel}set scrollAcceleration(A){this.scrollAccel=A}get viewportCulling(){return this.content.viewportCulling}set viewportCulling(A){this.content.viewportCulling=A,this.requestRender()}destroySelf(){if(this.selectionListener)this._ctx.off("selection",this.selectionListener),this.selectionListener=void 0;super.destroySelf()}}var A4;((A)=>{A.SELECTION_CHANGED="selectionChanged",A.ITEM_SELECTED="itemSelected"})(A4||={});var q4;((A)=>{A.SELECTION_CHANGED="selectionChanged",A.ITEM_SELECTED="itemSelected"})(q4||={});import{exec as f1}from"child_process";import{appendFileSync as g4,writeFileSync as E4}from"fs";import{join as F4}from"path";import{homedir as K4}from"os";var iO=F4(K4(),".config","hn-cli","debug.log"),lO=!1;function Z4(){if(!lO)try{E4(iO,`--- HN CLI Debug Log Started: ${new Date().toISOString()} ---
|
|
91
|
+
`),lO=!0}catch{}}function FA(...A){Z4();let q=new Date().toISOString(),g=A.map((E)=>{if(typeof E==="object")try{return JSON.stringify(E,null,2)}catch{return String(E)}return String(E)}).join(" ");try{g4(iO,`[${q}] ${g}
|
|
92
|
+
`)}catch{}}async function j4(){let A=await fetch("https://hacker-news.firebaseio.com/v0/topstories.json");if(!A.ok)throw new Error("Failed to fetch top stories");return A.json()}function tO(A){if(!A)return null;if(A.level>3)return null;return{...A,comments:A.comments.slice(0,8).map(tO).filter(Boolean)}}function sO(A,q){let g=A.comments.slice(0,12).map(tO).filter(Boolean);return{...A,comments:q?g:[]}}async function nO(A){try{let q=await fetch(`https://api.hnpwa.com/v0/item/${A}.json`);if(!q.ok)return null;let g=await q.json();return sO(g,!0)}catch{return null}}async function rO(){let q=(await j4()).sort((Y,M)=>M-Y).slice(0,200),g=await Promise.all(q.map(async(Y)=>{try{let M=await fetch(`https://api.hnpwa.com/v0/item/${Y}.json`);if(!M.ok)return null;let O=await M.json();return sO(O,!1)}catch{return null}})),E=Date.now()/1000,F=E-86400;return g.filter((Y)=>Y!==null).filter((Y)=>Y.type==="link").filter((Y)=>Y.time>F).filter((Y)=>(Y.points||0)>=50||Y.comments_count>=20).sort((Y,M)=>{let O=(E-Y.time)/3600,$=(E-M.time)/3600,_=Math.max(0,100*(1-O/24)),x=Math.max(0,100*(1-$/24)),N=(Y.points||0)+Y.comments_count*0.75+_;return(M.points||0)+M.comments_count*0.75+x-N}).slice(0,24)}import{homedir as U4}from"os";import{join as oO}from"path";import{existsSync as eO,mkdirSync as G4,readFileSync as Y4,writeFileSync as Q4}from"fs";var AJ=[{id:"claude-haiku-4-5-20251001",name:"Claude Haiku 4.5"},{id:"claude-sonnet-4-5-20250929",name:"Claude Sonnet 4.5"},{id:"claude-opus-4-5-20251101",name:"Claude Opus 4.5"}],qJ=[{id:"gpt-5-nano-2025-08-07",name:"GPT-5 Nano"},{id:"gpt-5-mini-2025-08-07",name:"GPT-5 Mini"},{id:"gpt-5.2-2025-12-11",name:"GPT-5.2"}],O4="claude-haiku-4-5-20251001",J4="gpt-5-nano-2025-08-07",A6="claude-haiku-4-5-20251001",Vg="gpt-5-nano-2025-08-07",lU=oO(U4(),".config","hn-cli"),iU=oO(lU,"config.json");function gJ(A){if(!A.anthropicApiKey)delete A.anthropicModel;if(!A.openaiApiKey)delete A.openaiModel;if(A.provider){if(!(A.provider==="anthropic"?!!A.anthropicApiKey:!!A.openaiApiKey))delete A.provider}return A}function q6(){try{if(eO(iU)){let A=Y4(iU,"utf-8"),q=JSON.parse(A);return gJ(q)}}catch{}return{}}function tE(A){if(!eO(lU))G4(lU,{recursive:!0});let q=gJ(A);Q4(iU,JSON.stringify(q,null,2))}function lA(A){if(A==="anthropic"){if(process.env.ANTHROPIC_API_KEY)return process.env.ANTHROPIC_API_KEY}else if(A==="openai"){if(process.env.OPENAI_API_KEY)return process.env.OPENAI_API_KEY}let q=q6();if(A==="anthropic")return q.anthropicApiKey;else return q.openaiApiKey}function Wg(){if(process.env.ANTHROPIC_API_KEY)return"anthropic";if(process.env.OPENAI_API_KEY)return"openai";let A=q6();if(A.provider&&lA(A.provider))return A.provider;if(A.anthropicApiKey)return"anthropic";if(A.openaiApiKey)return"openai";return}function EJ(){return Wg()!==void 0}function sE(A){let q=q6();if(A==="anthropic")return q.anthropicModel||O4;else return q.openaiModel||J4}function FJ(A,q){let g=q6();if(A==="anthropic")g.anthropicModel=q;else g.openaiModel=q;tE(g)}function KJ(){tE({})}var M4={bg:void 0,bgSelected:"#2a2a2a",border:"#3a3a3a",textPrimary:"#e0e0e0",textSecondary:"#888888",textTertiary:"#666666",accent:"#ff6600",link:"#6699ff",success:"#4ade80",error:"#ef4444",hint:"#a855f7",commentL1:"#555555",commentL2:"#444444",commentL3:"#333333"},_4={bg:void 0,bgSelected:"#e8e8e8",border:"#cccccc",textPrimary:"#1a1a1a",textSecondary:"#666666",textTertiary:"#888888",accent:"#ff6600",link:"#0066cc",success:"#22c55e",error:"#dc2626",hint:"#9333ea",commentL1:"#cccccc",commentL2:"#dddddd",commentL3:"#eeeeee"},I={...M4};function $4(A){if(!A)return!1;let q=A.replace("#",""),g=parseInt(q.substr(0,2),16),E=parseInt(q.substr(2,2),16),F=parseInt(q.substr(4,2),16);return(0.299*g+0.587*E+0.114*F)/255>0.5}async function ZJ(A){try{let q=await A.getPalette({timeout:100});if(q.defaultBackground&&$4(q.defaultBackground))Object.assign(I,_4)}catch{}}function jJ(A){return{0:I.accent,1:I.commentL1,2:I.commentL2,3:I.commentL3}[A]??I.commentL3}var yA=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];function UJ(A,q){if(A.length<=q)return A;return A.substring(0,q-3)+"..."}function Ng(A){return A.replace(/<\/p>\s*<p>/g,`
|
|
93
|
+
|
|
94
|
+
`).replace(/<p>/g,`
|
|
95
|
+
|
|
96
|
+
`).replace(/<\/p>/g,`
|
|
97
|
+
|
|
98
|
+
`).replace(/<br\s*\/?>/g,`
|
|
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(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(///g,"/").replace(/'/g,"'").replace(/ /g," ").replace(/\n{3,}/g,`
|
|
100
|
+
|
|
101
|
+
`).trim()}var tU="0.3.0";var H4="https://registry.npmjs.org/@brianlovin/hn-cli/latest",GJ="@brianlovin/hn-cli";function L4(A,q){let g=A.split(".").map(Number),E=q.split(".").map(Number);for(let F=0;F<3;F++){let K=g[F]??0,Z=E[F]??0;if(Z>K)return!0;if(Z<K)return!1}return!1}async function YJ(){try{let A=new AbortController,q=setTimeout(()=>A.abort(),3000),g=await fetch(H4,{signal:A.signal,headers:{Accept:"application/json"}});if(clearTimeout(q),!g.ok)return null;let F=(await g.json()).version;if(!F)return null;return{hasUpdate:L4(tU,F),currentVersion:tU,latestVersion:F}}catch{return null}}function sU(){if(process.versions.bun!==void 0)return`bun install -g ${GJ}`;return`npm install -g ${GJ}`}function QJ(A,q){let g=new b(A,{width:"100%",height:2,flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingLeft:1,paddingRight:2,backgroundColor:I.bg,borderStyle:"single",border:["bottom"],borderColor:I.border}),E=new b(A,{flexDirection:"row",alignItems:"center"}),F=new m(A,{content:"\u25A0",fg:I.accent,width:2,paddingLeft:1});E.add(F);let K=new m(A,{content:"Hacker News",fg:I.accent});E.add(K),g.add(E);let Z=new b(A,{flexDirection:"row",gap:2,alignItems:"center"}),j=new m(A,{content:"",fg:I.textSecondary});Z.add(j);let U=new m(A,{content:"brianlovin/hn-cli",fg:I.textSecondary,onMouseDown:()=>{q.onOpenGitHub?.()},onMouseOver:()=>{U.fg=I.accent},onMouseOut:()=>{U.fg=I.textSecondary}});Z.add(U);let G=new b(A,{flexDirection:"row",alignItems:"center",gap:1}),Y=new m(A,{content:"update available",fg:I.success}),M=new m(A,{content:"",fg:I.textSecondary});return G.add(Y),G.add(M),g.add(Z),{header:g,state:{loadingIndicator:j,loadingInterval:null,loadingFrame:0,rightContainer:Z,githubLink:U,updateContainer:G,updateLabel:Y,updateCommand:M}}}function OJ(A,q){if(q?.hasUpdate){if(A.rightContainer.remove(A.githubLink.id),A.updateCommand.content=sU(),!A.rightContainer.getChildren().some((F)=>F.id===A.updateContainer.id))A.rightContainer.add(A.updateContainer)}else if(A.rightContainer.remove(A.updateContainer.id),!A.rightContainer.getChildren().some((F)=>F.id===A.githubLink.id))A.rightContainer.add(A.githubLink)}function JJ(A,q){if(A.loadingInterval)return;A.loadingFrame=0,A.loadingInterval=setInterval(()=>{if(A.loadingIndicator&&!q()){let g=yA[A.loadingFrame]??"\u280B";A.loadingIndicator.content=g,A.loadingFrame=(A.loadingFrame+1)%yA.length}},80)}function MJ(A){if(A.loadingInterval)clearInterval(A.loadingInterval),A.loadingInterval=null;if(A.loadingIndicator)A.loadingIndicator.content=""}var V4=80;function _J(A,q,g,E,F){let K=new b(A,{id:`story-${q.id}`,width:"100%",paddingTop:0,paddingBottom:0,backgroundColor:I.bg,flexDirection:"row",onMouseDown:()=>{F.onSelect(g)}}),Z=new m(A,{id:`chevron-${q.id}`,content:E?"\u203A":"\u2022",fg:E?I.accent:I.textTertiary,width:2,paddingLeft:1});K.add(Z);let j=new b(A,{id:`content-${q.id}`,flexGrow:1,flexDirection:"column",paddingRight:2});K.add(j);let U=new m(A,{id:`title-${q.id}`,content:UJ(q.title,V4),fg:E?I.accent:I.textPrimary,maxHeight:2});if(j.add(U),q.domain){let G=new m(A,{id:`domain-${q.id}`,content:q.domain,fg:I.textSecondary});j.add(G)}return K}function nU(A,q,g){let E=A.getChildren();if(E.length>=2){let F=E[0];if(F&&"content"in F)F.content=g?"\u203A":"\u2022",F.fg=g?I.accent:I.textTertiary;let Z=E[1].getChildren();if(Z.length>0){let j=Z[0];if(j&&"content"in j)j.fg=g?I.accent:I.textPrimary}}}function $J(A,q){let g=A.getChildren();if(g.length>=1){let E=g[0];if(E&&"content"in E)E.content=q}}function W4(A,q){return A.length===1&&q.length>0&&q.toLowerCase().startsWith(A.toLowerCase())}function c6(A,q){let g=new b(A,{width:"100%",height:2,flexDirection:"row",alignItems:"center",paddingLeft:2,paddingRight:2,backgroundColor:I.bg,borderStyle:"single",border:["top"],borderColor:I.border,gap:2}),E=q.filter((Z)=>!Z.rightAlign),F=q.filter((Z)=>Z.rightAlign),K=(Z)=>{let{key:j,desc:U}=Z;if(W4(j,U)){let G=U[0]??"",Y=new m(A,{content:Hq`${yE(v6(I.textPrimary)(G))}${U.slice(1)}`,fg:I.textSecondary});g.add(Y)}else{let G=new b(A,{flexDirection:"row",gap:1}),Y=new m(A,{content:j,fg:I.textPrimary}),M=new m(A,{content:U,fg:I.textSecondary});G.add(Y),G.add(M),g.add(G)}};for(let Z of E)K(Z);if(F.length>0){let Z=new b(A,{flexGrow:1});g.add(Z);for(let j of F)K(j)}return g}var XJ=[{key:"\u2423",desc:"next"},{key:"o",desc:"open"},{key:"c",desc:"chat"},{key:"s",desc:"settings",rightAlign:!0}],HJ=[{key:"j/k",desc:"navigate"}],LJ=[{key:"esc",desc:"close"}];function VJ(A){let q=new b(A,{id:"story-list-panel",width:"35%",maxWidth:60,flexShrink:0,height:"100%",flexDirection:"column",borderStyle:"single",border:["right"],borderColor:I.border,backgroundColor:I.bg,paddingLeft:1}),g=new Lg(A,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:I.bg,contentOptions:{flexDirection:"column",backgroundColor:I.bg,gap:1}}),E=c6(A,HJ);return q.add(g),q.add(E),{panel:q,scroll:g,shortcutsBar:E,items:new Map}}function TZ(A,q,g,E,F){for(let K of q.scroll.getChildren())q.scroll.remove(K.id);q.items.clear(),g.forEach((K,Z)=>{let U=_J(A,K,Z,Z===E,F);q.items.set(Z,U),q.scroll.add(U)})}function WJ(A,q,g,E){let F=A.items.get(g),K=q[g];if(F&&K)nU(F,K,!1);let Z=A.items.get(E),j=q[E];if(Z&&j)nU(Z,j,!0)}function NJ(A,q){let F=q*3,K=F+2,Z=A.scroll.height,j=A.scroll.scrollTop;if(F<j)A.scroll.scrollTop=F;else if(K>j+Z)A.scroll.scrollTop=K-Z}function rU(A,q,g){let E=A.items.get(q);if(E)$J(E,g)}function oU(A,q){let g=q.level===0,E=jJ(q.level),F=new b(A,{id:`comment-wrapper-${q.id}`,width:"100%",marginTop:1,flexDirection:"row"});if(q.level>0){let j=new b(A,{width:q.level*2,flexShrink:0});F.add(j)}let K=new b(A,{id:`comment-${q.id}`,flexGrow:1,flexShrink:1,paddingLeft:1,paddingRight:1,borderStyle:"single",border:["left"],borderColor:E,flexDirection:"column"}),Z=new m(A,{content:q.user||"[deleted]",fg:g?I.accent:I.textSecondary});if(K.add(Z),q.content){let j=new m(A,{content:Ng(q.content),fg:I.textPrimary,wrapMode:"word"});K.add(j)}else if(q.deleted){let j=new m(A,{content:"[deleted]",fg:I.textTertiary});K.add(j)}if(F.add(K),q.comments&&q.comments.length>0){let j=new b(A,{width:"100%",flexDirection:"column"});for(let G of q.comments){let Y=oU(A,G);j.add(Y)}let U=new b(A,{width:"100%",flexDirection:"column"});return U.add(F),U.add(j),U}return F}function TJ(A,q,g){let E=new b(A,{width:"100%",flexDirection:"column",flexShrink:0,paddingLeft:2,paddingRight:2,paddingTop:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:I.border,backgroundColor:I.bg}),F=new m(A,{content:q.title,fg:I.textPrimary,wrapMode:"word",flexShrink:0,maxHeight:2,onMouseDown:()=>g.onOpenStoryUrl(),onMouseOver:()=>{F.fg=I.accent},onMouseOut:()=>{F.fg=I.textPrimary}});if(E.add(F),q.domain){let K=new m(A,{content:q.domain,fg:I.textSecondary,flexShrink:0,maxHeight:1,onMouseDown:()=>g.onOpenStoryUrl()});E.add(K)}return{container:E}}function IJ(A,q,g,E){for(let K of q.getChildren())q.remove(K.id);let F=new m(A,{content:g.title,fg:I.textPrimary,wrapMode:"word",flexShrink:0,maxHeight:2,onMouseDown:()=>E.onOpenStoryUrl(),onMouseOver:()=>{F.fg=I.accent},onMouseOut:()=>{F.fg=I.textPrimary}});if(q.add(F),g.domain){let K=new m(A,{content:g.domain,fg:I.textSecondary,flexShrink:0,maxHeight:1,onMouseDown:()=>E.onOpenStoryUrl()});q.add(K)}}function xJ(A,q){let g=new b(A,{width:0,flexGrow:1,flexShrink:0,height:"100%",flexDirection:"column",backgroundColor:I.bg}),E=new b(A,{id:"detail-header",width:"100%",flexDirection:"column",flexShrink:0,paddingLeft:2,paddingRight:2,paddingTop:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:I.border,backgroundColor:I.bg}),F=new Lg(A,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:I.bg,contentOptions:{flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:1,backgroundColor:I.bg}}),K=new b(A,{width:"100%",flexDirection:"column",backgroundColor:I.bg});F.add(K);let Z=c6(A,XJ);return{panel:g,header:E,scroll:F,content:K,shortcutsBar:Z,rootCommentBoxes:[]}}function IZ(A){if(!A.panel.getChildren().some((E)=>E.id===A.header.id))A.panel.add(A.header),A.panel.add(A.scroll),A.panel.add(A.shortcutsBar)}function g6(A,q,g,E,F){for(let G of q.content.getChildren())q.content.remove(G.id);if(q.rootCommentBoxes=[],IJ(A,q.header,g,E),g.content){let G=new b(A,{width:"100%",marginBottom:2}),Y=new m(A,{content:Ng(g.content),fg:I.textPrimary,wrapMode:"word"});G.add(Y),q.content.add(G)}if(F?.isLoading){let G=new b(A,{width:"100%",flexDirection:"column",marginBottom:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:I.border}),Y=F.loadingFrame??0,M=yA[Y%yA.length],O=new m(A,{content:`${M} Generating TLDR...`,fg:I.textTertiary});G.add(O),q.content.add(G)}else if(F?.hasError){let G=new b(A,{width:"100%",flexDirection:"column",marginBottom:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:I.border}),Y=new m(A,{content:"Failed to generate TLDR. Press t to retry.",fg:I.error});G.add(Y),q.content.add(G)}else if(F?.tldr){let G=new b(A,{width:"100%",flexDirection:"column",flexShrink:1,marginBottom:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:I.border}),Y=new m(A,{content:Hq`${Xg("TL;DR")}`,fg:I.accent});G.add(Y);let M=new b(A,{height:1});G.add(M);let O=new m(A,{content:Hq`${Xg("Article summary")}`,fg:I.textSecondary});G.add(O);let $=new b(A,{flexGrow:1,flexShrink:1}),_=new m(A,{content:F.tldr.articleSummary,fg:I.textPrimary,wrapMode:"word"});$.add(_),G.add($);let x=new b(A,{height:1});G.add(x);let N=new m(A,{content:Hq`${Xg("Discussion summary")}`,fg:I.textSecondary});G.add(N);let L=new b(A,{flexGrow:1,flexShrink:1}),P=new m(A,{content:F.tldr.discussionSummary,fg:I.textPrimary,wrapMode:"word"});L.add(P),G.add(L);let k=new b(A,{height:1});G.add(k);let C=new m(A,{content:"c to continue chatting",fg:I.textTertiary});G.add(C),q.content.add(G)}let K=new b(A,{width:"100%",flexDirection:"column"}),Z=new b(A,{width:"100%",flexDirection:"row"}),j=new m(A,{content:`${g.comments_count} comments`,fg:I.textSecondary});Z.add(j);let U=new m(A,{content:Hq` \u00B7 ${yE(v6(I.textPrimary)("t"))}ldr`,fg:I.textTertiary});if(Z.add(U),K.add(Z),g.comments&&g.comments.length>0)for(let G=0;G<g.comments.length;G++){let Y=g.comments[G];if(!Y)continue;let M=oU(A,Y);if(K.add(M),Y.level===0)q.rootCommentBoxes.push(M)}else{let G=new m(A,{content:"No comments yet...",fg:I.textSecondary});K.add(G)}q.content.add(K),q.scroll.scrollTop=0}function eU(A,q){if(q<0||q>=A.rootCommentBoxes.length)return;let g=A.rootCommentBoxes[q];if(!g)return;let E=A.scroll.content,F=g.y-E.y;A.scroll.scrollTop=Math.max(0,F-1)}var xZ=30,N4="\u2588",T4="\u2591",PJ=6;function RJ(A){let q=(xZ-1)*2,g=A%q,E=g<xZ?g:q-g,F=Math.floor(PJ/2),K=E-F,Z=E+F+PJ%2;K=Math.max(0,K),Z=Math.min(xZ,Z);let j="";for(let U=0;U<xZ;U++)j+=U>=K&&U<Z?N4:T4;return j}function SJ(A){let q=new b(A,{width:"100%",height:"100%",flexDirection:"column",alignItems:"center",justifyContent:"center",backgroundColor:I.bg}),g=new m(A,{content:"",fg:I.textSecondary}),E=new m(A,{content:"",fg:I.textSecondary,marginTop:2});return q.add(g),q.add(E),{container:q,progressBar:g,statusText:E,mode:"loading",frame:0,animationInterval:null}}function aJ(A,q,g){if(nE(A),A.mode=q,A.frame=0,q==="loading")A.progressBar.content=RJ(0),A.statusText.content="",A.animationInterval=setInterval(()=>{if(g()){nE(A);return}A.frame++,A.progressBar.content=RJ(A.frame)},40);else A.progressBar.content="",A.statusText.content="Press j/k to browse stories"}function nE(A){if(A.animationInterval)clearInterval(A.animationInterval),A.animationInterval=null}function hJ(A){return new b(A,{id:"suggestions-container",width:"100%",flexDirection:"column",flexShrink:0,paddingLeft:2,paddingRight:2,paddingTop:1,paddingBottom:1,backgroundColor:I.bg,borderStyle:"single",border:["top"],borderColor:I.border})}function aA(A,q){if(!q.container)return;for(let Z of q.container.getChildren())q.container.remove(Z.id);let g=q.loading||q.suggestions.length>0,E=q.container;if(g)E.paddingTop=1,E.paddingBottom=1,E.border=["top"];else E.paddingTop=0,E.paddingBottom=0,E.border=[];if(q.loading){let Z=new m(A,{id:"suggestions-loading",content:`${yA[q.loadingFrame]??"\u280B"} Generating suggestions...`,fg:I.textSecondary});q.container.add(Z);return}if(q.suggestions.length===0)return;let F=new m(A,{id:"suggestions-header",content:"\u2726 Suggested questions",fg:I.textTertiary});q.container.add(F);let K=new b(A,{id:"suggestions-spacer",height:1});q.container.add(K);for(let Z=0;Z<q.suggestions.length;Z++){let j=q.suggestions[Z];if(!j)continue;let U=Z===q.selectedIndex,G=new b(A,{id:`suggestion-row-${Z}`,width:"100%",flexDirection:"row",backgroundColor:I.bg}),Y=new m(A,{id:`suggestion-indicator-${Z}`,content:U?"\u203A ":"\u2022 ",fg:U?I.accent:I.textSecondary,width:2,flexShrink:0});G.add(Y);let M=new b(A,{id:`suggestion-text-container-${Z}`,flexGrow:1,flexDirection:"row",flexWrap:"wrap"}),O=new m(A,{id:`suggestion-text-${Z}`,content:j,fg:U?I.accent:I.textSecondary,wrapMode:"word"});if(M.add(O),U){let $=new m(A,{id:`suggestion-hint-${Z}`,content:" tab to type",fg:I.textTertiary});M.add($)}G.add(M),q.container.add(G)}}function zJ(A){return{container:A,suggestions:[],originalSuggestions:[],selectedIndex:-1,loading:!1,loadingFrame:0}}function BJ(A,q){let g=new b(A,{width:"100%",flexShrink:0,flexDirection:"row",alignItems:"flex-start",paddingLeft:2,paddingRight:2,backgroundColor:I.bg,borderStyle:"single",border:["top"],borderColor:I.border}),E=new m(A,{content:"\u203A ",fg:I.accent});g.add(E);let F=new Sq(A,{width:"100%",flexGrow:1,height:1,maxHeight:5,wrapMode:"word",placeholder:"Ask a question about this story...",backgroundColor:I.bg,keyBindings:[{name:"return",shift:!0,action:"newline"},{name:"return",action:"submit"}]});return F.on("submit",()=>{q.onSubmit()}),g.add(F),{container:g,input:F}}function PZ(A,q,g){let E=new Lg(A,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:I.bg,contentOptions:{flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:1,backgroundColor:I.bg}}),F=new b(A,{width:"100%",flexDirection:"column",backgroundColor:I.bg});E.add(F);let K=hJ(A),Z=zJ(K),j=BJ(A,{onSubmit:g.onSubmit}),U=c6(A,LJ),G=new b(A,{width:"100%",height:"100%",flexDirection:"column",backgroundColor:I.bg}),{container:Y}=TJ(A,q,{onOpenStoryUrl:g.onOpenStoryUrl});return G.add(Y),G.add(E),G.add(K),G.add(j.container),G.add(U),{panel:G,scroll:E,content:F,input:j.input,suggestions:Z,messages:[],isActive:!0,isTyping:!1,typingFrame:0,typingInterval:null}}function Tg(A,q,g){if(!q.content)return;for(let F of q.content.getChildren())q.content.remove(F.id);let E=-1;for(let F=q.messages.length-1;F>=0;F--)if(q.messages[F]?.role==="user"){E=F;break}for(let F=0;F<q.messages.length;F++){let K=q.messages[F];if(!K)continue;let Z=F>=E&&E!==-1,j=new b(A,{width:"100%",flexDirection:"column",marginBottom:1}),U=new b(A,{flexDirection:"row",gap:1}),G=K.role==="user"?I.accent:I.link,Y=new m(A,{content:"\u2022",fg:G});U.add(Y);let M=g==="anthropic"?"Claude":"GPT",O=new m(A,{content:K.role==="user"?"You":M,fg:G});U.add(O),j.add(U);let $=new b(A,{width:"100%",paddingLeft:2}),_=new m(A,{content:K.content,fg:Z?I.textPrimary:I.textSecondary,wrapMode:"word"});$.add(_),j.add($),q.content.add(j)}AG(q)}function AG(A){if(!A.scroll||!A.isActive)return;A.scroll.scrollTop=A.scroll.scrollHeight,setTimeout(()=>{if(A.scroll&&A.isActive)A.scroll.scrollTop=A.scroll.scrollHeight},50),setTimeout(()=>{if(A.scroll&&A.isActive)A.scroll.scrollTop=A.scroll.scrollHeight},150)}function rE(A,q,g,E,F){q.messages.push({role:g,content:E}),Tg(A,q,F)}function wJ(A,q,g){if(q.typingInterval)return;q.isTyping=!0,q.typingFrame=0,q.typingInterval=setInterval(()=>{if(!q.isActive||!q.isTyping){d6(q);return}q.typingFrame=(q.typingFrame+1)%yA.length;let E=q.messages[q.messages.length-1];if(E&&E.role==="assistant"&&E.content==="..."){let F=yA[q.typingFrame]??"\u280B";E.content=F,Tg(A,q,g),E.content="..."}},80)}function d6(A){if(A.isTyping=!1,A.typingInterval)clearInterval(A.typingInterval),A.typingInterval=null}function RZ(){return{step:"provider",selectedProvider:"anthropic",keyInput:null}}function CJ(A,q,g){let E=new b(A,{width:"100%",height:"100%",flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:2,backgroundColor:I.bg}),F=new m(A,{content:"Set up AI Chat",fg:I.accent});if(E.add(F),E.add(new b(A,{height:1})),q.step==="provider")I4(A,E,q);else if(q.step==="key")x4(A,E,q,g);return E}function I4(A,q,g){let E=new m(A,{content:"Choose your AI provider:",fg:I.textPrimary});q.add(E),q.add(new b(A,{height:1}));let F=new b(A,{flexDirection:"row",gap:1}),K=new m(A,{content:g.selectedProvider==="anthropic"?"\u25CF":"\u25CB",fg:g.selectedProvider==="anthropic"?I.accent:I.textSecondary}),Z=new m(A,{content:"Anthropic",fg:g.selectedProvider==="anthropic"?I.accent:I.textPrimary});F.add(K),F.add(Z),q.add(F);let j=new b(A,{flexDirection:"row",gap:1}),U=new m(A,{content:g.selectedProvider==="openai"?"\u25CF":"\u25CB",fg:g.selectedProvider==="openai"?I.accent:I.textSecondary}),G=new m(A,{content:"OpenAI",fg:g.selectedProvider==="openai"?I.accent:I.textPrimary});j.add(U),j.add(G),q.add(j),q.add(new b(A,{height:2}));let Y=new m(A,{content:"\u2191/\u2193 to select, Enter to continue, Esc to cancel",fg:I.textSecondary});q.add(Y)}function x4(A,q,g,E){let F=g.selectedProvider==="anthropic"?"Anthropic":"OpenAI",K=new m(A,{content:`Enter your ${F} API key:`,fg:I.textPrimary});q.add(K),q.add(new b(A,{height:1}));let Z=new b(A,{width:"100%",flexDirection:"row"}),j=new m(A,{content:"\u203A",fg:I.accent});Z.add(j);let U=new b(A,{width:1});Z.add(U),g.keyInput=new VZ(A,{flexGrow:1,placeholder:g.selectedProvider==="anthropic"?"sk-ant-...":"sk-...",backgroundColor:I.bg}),g.keyInput.on("enter",()=>{let M=g.keyInput?.value.trim();if(M)E.onSaveKey(g.selectedProvider,M)}),Z.add(g.keyInput),q.add(Z),q.add(new b(A,{height:2}));let G=new m(A,{content:"Your key is stored locally at ~/.config/hn-cli/config.json",fg:I.textSecondary,wrapMode:"word"});q.add(G),q.add(new b(A,{height:2}));let Y=new m(A,{content:"Enter to save, Esc to cancel",fg:I.textSecondary});q.add(Y),setTimeout(()=>{if(g.keyInput)g.keyInput.focus(),g.keyInput.value=""},50)}function qG(A,q){if(A.step!=="provider")return;A.selectedProvider=q>0?"openai":"anthropic"}function kJ(A){if(A.step==="provider")A.step="key"}function DJ(){return{selectedIndex:0}}function gG(A){let q=!!lA("anthropic"),g=!!lA("openai"),E=q||g,F=A==="anthropic"?AJ:qJ,K=[];if(K.push({item:{type:"provider",provider:"anthropic",hasKey:q},enabled:!0}),K.push({item:{type:"provider",provider:"openai",hasKey:g},enabled:!0}),E)for(let Z of F)K.push({item:{type:"model",modelId:Z.id,modelName:Z.name},enabled:!0});if(K.push({item:{type:"action",action:"done"},enabled:!0}),E)K.push({item:{type:"action",action:"clear_keys"},enabled:!0});return K}function yJ(A,q,g){let E=new b(A,{width:"100%",height:"100%",flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:2,backgroundColor:I.bg}),F=gG(g),K=sE(g),Z=new m(A,{content:"Settings",fg:I.accent});E.add(Z),E.add(new b(A,{height:1}));let j=new m(A,{content:Hq`${Xg("Provider")}`,fg:I.textSecondary});E.add(j);for(let Y=0;Y<F.length;Y++){let M=F[Y];if(!M||M.item.type!=="provider")continue;let O=Y===q.selectedIndex,$=M.item.provider===g,_=M.item.hasKey,x=M.item.provider==="anthropic"?"Anthropic":"OpenAI",N=new b(A,{flexDirection:"row",gap:1}),L=new m(A,{content:O?"\u203A":" ",fg:I.accent});N.add(L);let P=new m(A,{content:$?"\u25CF":"\u25CB",fg:$?I.accent:I.textSecondary});N.add(P);let k=new m(A,{content:x,fg:O?I.accent:I.textPrimary});if(N.add(k),!_){let C=new m(A,{content:"Add API Key",fg:I.textSecondary});N.add(C)}E.add(N)}if(F.some((Y)=>Y.item.type==="model")){E.add(new b(A,{height:1}));let Y=new m(A,{content:Hq`${Xg("Model")}`,fg:I.textSecondary});E.add(Y);for(let M=0;M<F.length;M++){let O=F[M];if(!O||O.item.type!=="model")continue;let $=M===q.selectedIndex,_=O.item.modelId===K,x=new b(A,{flexDirection:"row",gap:1}),N=new m(A,{content:$?"\u203A":" ",fg:I.accent});x.add(N);let L=new m(A,{content:_?"\u25CF":"\u25CB",fg:_?I.accent:I.textSecondary});x.add(L);let P=new m(A,{content:O.item.modelName,fg:$?I.accent:I.textPrimary});x.add(P),E.add(x)}}E.add(new b(A,{height:1}));for(let Y=0;Y<F.length;Y++){let M=F[Y];if(!M||M.item.type!=="action")continue;let O=Y===q.selectedIndex,$="";switch(M.item.action){case"done":$="Done";break;case"clear_keys":$="Clear All API Keys";break}let _=new b(A,{flexDirection:"row",gap:1}),x=new m(A,{content:O?"\u203A":" ",fg:I.accent});_.add(x);let N=new m(A,{content:`[${$}]`,fg:O?I.accent:I.textPrimary});_.add(N),E.add(_)}E.add(new b(A,{height:2}));let G=new m(A,{content:"\u2191/\u2193 navigate Enter select Esc back",fg:I.textSecondary});return E.add(G),E}function EG(A,q,g){let F=gG(g).length-1;A.selectedIndex=Math.max(0,Math.min(F,A.selectedIndex+q))}function bJ(A,q){let E=gG(q)[A.selectedIndex];if(!E||!E.enabled)return null;switch(E.item.type){case"provider":if(!E.item.hasKey)return E.item.provider==="anthropic"?{type:"add_anthropic"}:{type:"add_openai"};if(E.item.provider!==q)return{type:"switch_provider",provider:E.item.provider};return null;case"model":return{type:"select_model",modelId:E.item.modelId,provider:q};case"action":switch(E.item.action){case"done":return{type:"done"};case"clear_keys":return{type:"clear_keys"}}}return null}function vJ(A){return!1}function f(A,q,g,E,F){if(E==="m")throw new TypeError("Private method is not writable");if(E==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof q==="function"?A!==q||!F:!q.has(A))throw new TypeError("Cannot write private member to an object whose class did not declare it");return E==="a"?F.call(A,g):F?F.value=g:q.set(A,g),g}function T(A,q,g,E){if(g==="a"&&!E)throw new TypeError("Private accessor was defined without a getter");if(typeof q==="function"?A!==q||!E:!q.has(A))throw new TypeError("Cannot read private member from an object whose class did not declare it");return g==="m"?E:g==="a"?E.call(A):E?E.value:q.get(A)}var FG=function(){let{crypto:A}=globalThis;if(A?.randomUUID)return FG=A.randomUUID.bind(A),A.randomUUID();let q=new Uint8Array(1),g=A?()=>A.getRandomValues(q)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(E)=>(+E^g()&15>>+E/4).toString(16))};function oq(A){return typeof A==="object"&&A!==null&&(("name"in A)&&A.name==="AbortError"||("message"in A)&&String(A.message).includes("FetchRequestCanceledException"))}var oE=(A)=>{if(A instanceof Error)return A;if(typeof A==="object"&&A!==null){try{if(Object.prototype.toString.call(A)==="[object Error]"){let q=new Error(A.message,A.cause?{cause:A.cause}:{});if(A.stack)q.stack=A.stack;if(A.cause&&!q.cause)q.cause=A.cause;if(A.name)q.name=A.name;return q}}catch{}try{return new Error(JSON.stringify(A))}catch{}}return new Error(A)};class t extends Error{}class NA extends t{constructor(A,q,g,E){super(`${NA.makeMessage(A,q,g)}`);this.status=A,this.headers=E,this.requestID=E?.get("request-id"),this.error=q}static makeMessage(A,q,g){let E=q?.message?typeof q.message==="string"?q.message:JSON.stringify(q.message):q?JSON.stringify(q):g;if(A&&E)return`${A} ${E}`;if(A)return`${A} status code (no body)`;if(E)return E;return"(no status code or body)"}static generate(A,q,g,E){if(!A||!E)return new E6({message:g,cause:oE(q)});let F=q;if(A===400)return new AF(A,F,g,E);if(A===401)return new qF(A,F,g,E);if(A===403)return new gF(A,F,g,E);if(A===404)return new EF(A,F,g,E);if(A===409)return new FF(A,F,g,E);if(A===422)return new KF(A,F,g,E);if(A===429)return new ZF(A,F,g,E);if(A>=500)return new jF(A,F,g,E);return new NA(A,F,g,E)}}class bA extends NA{constructor({message:A}={}){super(void 0,void 0,A||"Request was aborted.",void 0)}}class E6 extends NA{constructor({message:A,cause:q}){super(void 0,void 0,A||"Connection error.",void 0);if(q)this.cause=q}}class eE extends E6{constructor({message:A}={}){super({message:A??"Request timed out."})}}class AF extends NA{}class qF extends NA{}class gF extends NA{}class EF extends NA{}class FF extends NA{}class KF extends NA{}class ZF extends NA{}class jF extends NA{}var R4=/^[a-z][a-z0-9+.-]*:/i,mJ=(A)=>{return R4.test(A)},KG=(A)=>(KG=Array.isArray,KG(A)),ZG=KG;function SZ(A){if(typeof A!=="object")return{};return A??{}}function fJ(A){if(!A)return!0;for(let q in A)return!1;return!0}function cJ(A,q){return Object.prototype.hasOwnProperty.call(A,q)}var dJ=(A,q)=>{if(typeof q!=="number"||!Number.isInteger(q))throw new t(`${A} must be an integer`);if(q<0)throw new t(`${A} must be a positive integer`);return q};var aZ=(A)=>{try{return JSON.parse(A)}catch(q){return}};var pJ=(A)=>new Promise((q)=>setTimeout(q,A));var Ig="0.71.2";var tJ=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"};function S4(){if(typeof Deno!=="undefined"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime!=="undefined")return"edge";if(Object.prototype.toString.call(typeof globalThis.process!=="undefined"?globalThis.process:0)==="[object process]")return"node";return"unknown"}var a4=()=>{let A=S4();if(A==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ig,"X-Stainless-OS":lJ(Deno.build.os),"X-Stainless-Arch":uJ(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime!=="undefined")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ig,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(A==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ig,"X-Stainless-OS":lJ(globalThis.process.platform??"unknown"),"X-Stainless-Arch":uJ(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let q=h4();if(q)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ig,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${q.browser}`,"X-Stainless-Runtime-Version":q.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Ig,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function h4(){if(typeof navigator==="undefined"||!navigator)return null;let A=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:q,pattern:g}of A){let E=g.exec(navigator.userAgent);if(E){let F=E[1]||0,K=E[2]||0,Z=E[3]||0;return{browser:q,version:`${F}.${K}.${Z}`}}}return null}var uJ=(A)=>{if(A==="x32")return"x32";if(A==="x86_64"||A==="x64")return"x64";if(A==="arm")return"arm";if(A==="aarch64"||A==="arm64")return"arm64";if(A)return`other:${A}`;return"unknown"},lJ=(A)=>{if(A=A.toLowerCase(),A.includes("ios"))return"iOS";if(A==="android")return"Android";if(A==="darwin")return"MacOS";if(A==="win32")return"Windows";if(A==="freebsd")return"FreeBSD";if(A==="openbsd")return"OpenBSD";if(A==="linux")return"Linux";if(A)return`Other:${A}`;return"Unknown"},iJ,sJ=()=>{return iJ??(iJ=a4())};function nJ(){if(typeof fetch!=="undefined")return fetch;throw new Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new Anthropic({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function jG(...A){let q=globalThis.ReadableStream;if(typeof q==="undefined")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new q(...A)}function hZ(A){let q=Symbol.asyncIterator in A?A[Symbol.asyncIterator]():A[Symbol.iterator]();return jG({start(){},async pull(g){let{done:E,value:F}=await q.next();if(E)g.close();else g.enqueue(F)},async cancel(){await q.return?.()}})}function UF(A){if(A[Symbol.asyncIterator])return A;let q=A.getReader();return{async next(){try{let g=await q.read();if(g?.done)q.releaseLock();return g}catch(g){throw q.releaseLock(),g}},async return(){let g=q.cancel();return q.releaseLock(),await g,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function rJ(A){if(A===null||typeof A!=="object")return;if(A[Symbol.asyncIterator]){await A[Symbol.asyncIterator]().return?.();return}let q=A.getReader(),g=q.cancel();q.releaseLock(),await g}var oJ=({headers:A,body:q})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(q)}};function qM(A){let q=0;for(let F of A)q+=F.length;let g=new Uint8Array(q),E=0;for(let F of A)g.set(F,E),E+=F.length;return g}var eJ;function GF(A){let q;return(eJ??(q=new globalThis.TextEncoder,eJ=q.encode.bind(q)))(A)}var AM;function UG(A){let q;return(AM??(q=new globalThis.TextDecoder,AM=q.decode.bind(q)))(A)}var tA,sA;class xg{constructor(){tA.set(this,void 0),sA.set(this,void 0),f(this,tA,new Uint8Array,"f"),f(this,sA,null,"f")}decode(A){if(A==null)return[];let q=A instanceof ArrayBuffer?new Uint8Array(A):typeof A==="string"?GF(A):A;f(this,tA,qM([T(this,tA,"f"),q]),"f");let g=[],E;while((E=w4(T(this,tA,"f"),T(this,sA,"f")))!=null){if(E.carriage&&T(this,sA,"f")==null){f(this,sA,E.index,"f");continue}if(T(this,sA,"f")!=null&&(E.index!==T(this,sA,"f")+1||E.carriage)){g.push(UG(T(this,tA,"f").subarray(0,T(this,sA,"f")-1))),f(this,tA,T(this,tA,"f").subarray(T(this,sA,"f")),"f"),f(this,sA,null,"f");continue}let F=T(this,sA,"f")!==null?E.preceding-1:E.preceding,K=UG(T(this,tA,"f").subarray(0,F));g.push(K),f(this,tA,T(this,tA,"f").subarray(E.index),"f"),f(this,sA,null,"f")}return g}flush(){if(!T(this,tA,"f").length)return[];return this.decode(`
|
|
102
|
+
`)}}tA=new WeakMap,sA=new WeakMap;xg.NEWLINE_CHARS=new Set([`
|
|
103
|
+
`,"\r"]);xg.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function w4(A,q){for(let F=q??0;F<A.length;F++){if(A[F]===10)return{preceding:F,index:F+1,carriage:!1};if(A[F]===13)return{preceding:F,index:F+1,carriage:!0}}return null}function gM(A){for(let E=0;E<A.length-1;E++){if(A[E]===10&&A[E+1]===10)return E+2;if(A[E]===13&&A[E+1]===13)return E+2;if(A[E]===13&&A[E+1]===10&&E+3<A.length&&A[E+2]===13&&A[E+3]===10)return E+4}return-1}var BZ={off:0,error:200,warn:300,info:400,debug:500},GG=(A,q,g)=>{if(!A)return;if(cJ(BZ,A))return A;hA(g).warn(`${q} was set to ${JSON.stringify(A)}, expected one of ${JSON.stringify(Object.keys(BZ))}`);return};function YF(){}function zZ(A,q,g){if(!q||BZ[A]>BZ[g])return YF;else return q[A].bind(q)}var C4={error:YF,warn:YF,info:YF,debug:YF},EM=new WeakMap;function hA(A){let q=A.logger,g=A.logLevel??"off";if(!q)return C4;let E=EM.get(q);if(E&&E[0]===g)return E[1];let F={error:zZ("error",q,g),warn:zZ("warn",q,g),info:zZ("info",q,g),debug:zZ("debug",q,g)};return EM.set(q,[g,F]),F}var eq=(A)=>{if(A.options)A.options={...A.options},delete A.options.headers;if(A.headers)A.headers=Object.fromEntries((A.headers instanceof Headers?[...A.headers]:Object.entries(A.headers)).map(([q,g])=>[q,q.toLowerCase()==="x-api-key"||q.toLowerCase()==="authorization"||q.toLowerCase()==="cookie"||q.toLowerCase()==="set-cookie"?"***":g]));if("retryOfRequestLogID"in A){if(A.retryOfRequestLogID)A.retryOf=A.retryOfRequestLogID;delete A.retryOfRequestLogID}return A};var QF;class nA{constructor(A,q,g){this.iterator=A,QF.set(this,void 0),this.controller=q,f(this,QF,g,"f")}static fromSSEResponse(A,q,g){let E=!1,F=g?hA(g):console;async function*K(){if(E)throw new t("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");E=!0;let Z=!1;try{for await(let j of k4(A,q)){if(j.event==="completion")try{yield JSON.parse(j.data)}catch(U){throw F.error("Could not parse message into JSON:",j.data),F.error("From chunk:",j.raw),U}if(j.event==="message_start"||j.event==="message_delta"||j.event==="message_stop"||j.event==="content_block_start"||j.event==="content_block_delta"||j.event==="content_block_stop")try{yield JSON.parse(j.data)}catch(U){throw F.error("Could not parse message into JSON:",j.data),F.error("From chunk:",j.raw),U}if(j.event==="ping")continue;if(j.event==="error")throw new NA(void 0,aZ(j.data)??j.data,void 0,A.headers)}Z=!0}catch(j){if(oq(j))return;throw j}finally{if(!Z)q.abort()}}return new nA(K,q,g)}static fromReadableStream(A,q,g){let E=!1;async function*F(){let Z=new xg,j=UF(A);for await(let U of j)for(let G of Z.decode(U))yield G;for(let U of Z.flush())yield U}async function*K(){if(E)throw new t("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");E=!0;let Z=!1;try{for await(let j of F()){if(Z)continue;if(j)yield JSON.parse(j)}Z=!0}catch(j){if(oq(j))return;throw j}finally{if(!Z)q.abort()}}return new nA(K,q,g)}[(QF=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let A=[],q=[],g=this.iterator(),E=(F)=>{return{next:()=>{if(F.length===0){let K=g.next();A.push(K),q.push(K)}return F.shift()}}};return[new nA(()=>E(A),this.controller,T(this,QF,"f")),new nA(()=>E(q),this.controller,T(this,QF,"f"))]}toReadableStream(){let A=this,q;return jG({async start(){q=A[Symbol.asyncIterator]()},async pull(g){try{let{value:E,done:F}=await q.next();if(F)return g.close();let K=GF(JSON.stringify(E)+`
|
|
104
|
+
`);g.enqueue(K)}catch(E){g.error(E)}},async cancel(){await q.return?.()}})}}async function*k4(A,q){if(!A.body){if(q.abort(),typeof globalThis.navigator!=="undefined"&&globalThis.navigator.product==="ReactNative")throw new t("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new t("Attempted to iterate over a response with no body")}let g=new FM,E=new xg,F=UF(A.body);for await(let K of D4(F))for(let Z of E.decode(K)){let j=g.decode(Z);if(j)yield j}for(let K of E.flush()){let Z=g.decode(K);if(Z)yield Z}}async function*D4(A){let q=new Uint8Array;for await(let g of A){if(g==null)continue;let E=g instanceof ArrayBuffer?new Uint8Array(g):typeof g==="string"?GF(g):g,F=new Uint8Array(q.length+E.length);F.set(q),F.set(E,q.length),q=F;let K;while((K=gM(q))!==-1)yield q.slice(0,K),q=q.slice(K)}if(q.length>0)yield q}class FM{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(A){if(A.endsWith("\r"))A=A.substring(0,A.length-1);if(!A){if(!this.event&&!this.data.length)return null;let F={event:this.event,data:this.data.join(`
|
|
105
|
+
`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],F}if(this.chunks.push(A),A.startsWith(":"))return null;let[q,g,E]=y4(A,":");if(E.startsWith(" "))E=E.substring(1);if(q==="event")this.event=E;else if(q==="data")this.data.push(E);return null}}function y4(A,q){let g=A.indexOf(q);if(g!==-1)return[A.substring(0,g),q,A.substring(g+q.length)];return[A,"",""]}async function wZ(A,q){let{response:g,requestLogID:E,retryOfRequestLogID:F,startTime:K}=q,Z=await(async()=>{if(q.options.stream){if(hA(A).debug("response",g.status,g.url,g.headers,g.body),q.options.__streamClass)return q.options.__streamClass.fromSSEResponse(g,q.controller);return nA.fromSSEResponse(g,q.controller)}if(g.status===204)return null;if(q.options.__binaryResponse)return g;let U=g.headers.get("content-type")?.split(";")[0]?.trim();if(U?.includes("application/json")||U?.endsWith("+json")){let M=await g.json();return YG(M,g)}return await g.text()})();return hA(A).debug(`[${E}] response parsed`,eq({retryOfRequestLogID:F,url:g.url,status:g.status,body:Z,durationMs:Date.now()-K})),Z}function YG(A,q){if(!A||typeof A!=="object"||Array.isArray(A))return A;return Object.defineProperty(A,"_request_id",{value:q.headers.get("request-id"),enumerable:!1})}var OF;class F6 extends Promise{constructor(A,q,g=wZ){super((E)=>{E(null)});this.responsePromise=q,this.parseResponse=g,OF.set(this,void 0),f(this,OF,A,"f")}_thenUnwrap(A){return new F6(T(this,OF,"f"),this.responsePromise,async(q,g)=>YG(A(await this.parseResponse(q,g),g),g.response))}asResponse(){return this.responsePromise.then((A)=>A.response)}async withResponse(){let[A,q]=await Promise.all([this.parse(),this.asResponse()]);return{data:A,response:q,request_id:q.headers.get("request-id")}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then((A)=>this.parseResponse(T(this,OF,"f"),A));return this.parsedPromise}then(A,q){return this.parse().then(A,q)}catch(A){return this.parse().catch(A)}finally(A){return this.parse().finally(A)}}OF=new WeakMap;var CZ;class QG{constructor(A,q,g,E){CZ.set(this,void 0),f(this,CZ,A,"f"),this.options=E,this.response=q,this.body=g}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageRequestOptions()!=null}async getNextPage(){let A=this.nextPageRequestOptions();if(!A)throw new t("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await T(this,CZ,"f").requestAPIList(this.constructor,A)}async*iterPages(){let A=this;yield A;while(A.hasNextPage())A=await A.getNextPage(),yield A}async*[(CZ=new WeakMap,Symbol.asyncIterator)](){for await(let A of this.iterPages())for(let q of A.getPaginatedItems())yield q}}class kZ extends F6{constructor(A,q,g){super(A,q,async(E,F)=>new g(E,F.response,await wZ(E,F),F.options))}async*[Symbol.asyncIterator](){let A=await this;for await(let q of A)yield q}}class Wq extends QG{constructor(A,q,g,E){super(A,q,g,E);this.data=g.data||[],this.has_more=g.has_more||!1,this.first_id=g.first_id||null,this.last_id=g.last_id||null}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageRequestOptions(){if(this.options.query?.before_id){let q=this.first_id;if(!q)return null;return{...this.options,query:{...SZ(this.options.query),before_id:q}}}let A=this.last_id;if(!A)return null;return{...this.options,query:{...SZ(this.options.query),after_id:A}}}}class JF extends QG{constructor(A,q,g,E){super(A,q,g,E);this.data=g.data||[],this.has_more=g.has_more||!1,this.next_page=g.next_page||null}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageRequestOptions(){let A=this.next_page;if(!A)return null;return{...this.options,query:{...SZ(this.options.query),page:A}}}}var JG=()=>{if(typeof File==="undefined"){let{process:A}=globalThis,q=typeof A?.versions?.node==="string"&&parseInt(A.versions.node.split("."))<20;throw new Error("`File` is not defined as a global, which is required for file uploads."+(q?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function K6(A,q,g){return JG(),new File(A,q??"unknown_file",g)}function MF(A){return(typeof A==="object"&&A!==null&&(("name"in A)&&A.name&&String(A.name)||("url"in A)&&A.url&&String(A.url)||("filename"in A)&&A.filename&&String(A.filename)||("path"in A)&&A.path&&String(A.path))||"").split(/[\\/]/).pop()||void 0}var MG=(A)=>A!=null&&typeof A==="object"&&typeof A[Symbol.asyncIterator]==="function";var p6=async(A,q)=>{return{...A,body:await m4(A.body,q)}},KM=new WeakMap;function v4(A){let q=typeof A==="function"?A:A.fetch,g=KM.get(q);if(g)return g;let E=(async()=>{try{let F="Response"in q?q.Response:(await q("data:,")).constructor,K=new FormData;if(K.toString()===await new F(K).text())return!1;return!0}catch{return!0}})();return KM.set(q,E),E}var m4=async(A,q)=>{if(!await v4(q))throw new TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let g=new FormData;return await Promise.all(Object.entries(A||{}).map(([E,F])=>OG(g,E,F))),g},f4=(A)=>A instanceof Blob&&("name"in A);var OG=async(A,q,g)=>{if(g===void 0)return;if(g==null)throw new TypeError(`Received null for "${q}"; to pass null in FormData, you must use the string 'null'`);if(typeof g==="string"||typeof g==="number"||typeof g==="boolean")A.append(q,String(g));else if(g instanceof Response){let E={},F=g.headers.get("Content-Type");if(F)E={type:F};A.append(q,K6([await g.blob()],MF(g),E))}else if(MG(g))A.append(q,K6([await new Response(hZ(g)).blob()],MF(g)));else if(f4(g))A.append(q,K6([g],MF(g),{type:g.type}));else if(Array.isArray(g))await Promise.all(g.map((E)=>OG(A,q+"[]",E)));else if(typeof g==="object")await Promise.all(Object.entries(g).map(([E,F])=>OG(A,`${q}[${E}]`,F)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${g} instead`)};var ZM=(A)=>A!=null&&typeof A==="object"&&typeof A.size==="number"&&typeof A.type==="string"&&typeof A.text==="function"&&typeof A.slice==="function"&&typeof A.arrayBuffer==="function",c4=(A)=>A!=null&&typeof A==="object"&&typeof A.name==="string"&&typeof A.lastModified==="number"&&ZM(A),d4=(A)=>A!=null&&typeof A==="object"&&typeof A.url==="string"&&typeof A.blob==="function";async function DZ(A,q,g){if(JG(),A=await A,q||(q=MF(A)),c4(A)){if(A instanceof File&&q==null&&g==null)return A;return K6([await A.arrayBuffer()],q??A.name,{type:A.type,lastModified:A.lastModified,...g})}if(d4(A)){let F=await A.blob();return q||(q=new URL(A.url).pathname.split(/[\\/]/).pop()),K6(await _G(F),q,g)}let E=await _G(A);if(!g?.type){let F=E.find((K)=>typeof K==="object"&&("type"in K)&&K.type);if(typeof F==="string")g={...g,type:F}}return K6(E,q,g)}async function _G(A){let q=[];if(typeof A==="string"||ArrayBuffer.isView(A)||A instanceof ArrayBuffer)q.push(A);else if(ZM(A))q.push(A instanceof Blob?A:await A.arrayBuffer());else if(MG(A))for await(let g of A)q.push(...await _G(g));else{let g=A?.constructor?.name;throw new Error(`Unexpected data type: ${typeof A}${g?`; constructor: ${g}`:""}${p4(A)}`)}return q}function p4(A){if(typeof A!=="object"||A===null)return"";return`; props: [${Object.getOwnPropertyNames(A).map((g)=>`"${g}"`).join(", ")}]`}class _A{constructor(A){this._client=A}}var jM=Symbol.for("brand.privateNullableHeaders");function*l4(A){if(!A)return;if(jM in A){let{values:E,nulls:F}=A;yield*E.entries();for(let K of F)yield[K,null];return}let q=!1,g;if(A instanceof Headers)g=A.entries();else if(ZG(A))g=A;else q=!0,g=Object.entries(A??{});for(let E of g){let F=E[0];if(typeof F!=="string")throw new TypeError("expected header name to be a string");let K=ZG(E[1])?E[1]:[E[1]],Z=!1;for(let j of K){if(j===void 0)continue;if(q&&!Z)Z=!0,yield[F,null];yield[F,j]}}}var AA=(A)=>{let q=new Headers,g=new Set;for(let E of A){let F=new Set;for(let[K,Z]of l4(E)){let j=K.toLowerCase();if(!F.has(j))q.delete(K),F.add(j);if(Z===null)q.delete(K),g.add(j);else q.append(K,Z),g.delete(j)}}return{[jM]:!0,values:q,nulls:g}};function GM(A){return A.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var UM=Object.freeze(Object.create(null)),i4=(A=GM)=>function q(g,...E){if(g.length===1)return g[0];let F=!1,K=[],Z=g.reduce((Y,M,O)=>{if(/[?#]/.test(M))F=!0;let $=E[O],_=(F?encodeURIComponent:A)(""+$);if(O!==E.length&&($==null||typeof $==="object"&&$.toString===Object.getPrototypeOf(Object.getPrototypeOf($.hasOwnProperty??UM)??UM)?.toString))_=$+"",K.push({start:Y.length+M.length,length:_.length,error:`Value of type ${Object.prototype.toString.call($).slice(8,-1)} is not a valid path parameter`});return Y+M+(O===E.length?"":_)},""),j=Z.split(/[?#]/,1)[0],U=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,G;while((G=U.exec(j))!==null)K.push({start:G.index,length:G[0].length,error:`Value "${G[0]}" can't be safely passed as a path parameter`});if(K.sort((Y,M)=>Y.start-M.start),K.length>0){let Y=0,M=K.reduce((O,$)=>{let _=" ".repeat($.start-Y),x="^".repeat($.length);return Y=$.start+$.length,O+_+x},"");throw new t(`Path parameters result in path with invalid segments:
|
|
106
|
+
${K.map((O)=>O.error).join(`
|
|
98
107
|
`)}
|
|
99
108
|
${Z}
|
|
100
|
-
${M}`)}return Z},MA=t$(CO);class eE extends _A{list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/files",$q,{query:E,...q,headers:AA([{"anthropic-beta":[...g??[],"files-api-2025-04-14"].toString()},q?.headers])})}delete(A,q={},g){let{betas:E}=q??{};return this._client.delete(MA`/v1/files/${A}`,{...g,headers:AA([{"anthropic-beta":[...E??[],"files-api-2025-04-14"].toString()},g?.headers])})}download(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/files/${A}/content`,{...g,headers:AA([{"anthropic-beta":[...E??[],"files-api-2025-04-14"].toString(),Accept:"application/binary"},g?.headers]),__binaryResponse:!0})}retrieveMetadata(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/files/${A}`,{...g,headers:AA([{"anthropic-beta":[...E??[],"files-api-2025-04-14"].toString()},g?.headers])})}upload(A,q){let{betas:g,...E}=A;return this._client.post("/v1/files",B6({body:E,...q,headers:AA([{"anthropic-beta":[...g??[],"files-api-2025-04-14"].toString()},q?.headers])},this._client))}}class AF extends _A{retrieve(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/models/${A}?beta=true`,{...g,headers:AA([{...E?.toString()!=null?{"anthropic-beta":E?.toString()}:void 0},g?.headers])})}list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/models?beta=true",$q,{query:E,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers])})}}var HZ={"claude-opus-4-20250514":8192,"claude-opus-4-0":8192,"claude-4-opus-20250514":8192,"anthropic.claude-opus-4-20250514-v1:0":8192,"claude-opus-4@20250514":8192,"claude-opus-4-1-20250805":8192,"anthropic.claude-opus-4-1-20250805-v1:0":8192,"claude-opus-4-1@20250805":8192};function bU(A,q,g){if(!q||!("parse"in(q.output_format??{})))return{...A,content:A.content.map((E)=>{if(E.type==="text"){let F=Object.defineProperty({...E},"parsed_output",{value:null,enumerable:!1});return Object.defineProperty(F,"parsed",{get(){return g.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),null},enumerable:!1})}return E}),parsed_output:null};return vU(A,q,g)}function vU(A,q,g){let E=null,F=A.content.map((K)=>{if(K.type==="text"){let Z=r$(q,K.text);if(E===null)E=Z;let j=Object.defineProperty({...K},"parsed_output",{value:Z,enumerable:!1});return Object.defineProperty(j,"parsed",{get(){return g.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),Z},enumerable:!1})}return K});return{...A,content:F,parsed_output:E}}function r$(A,q){if(A.output_format?.type!=="json_schema")return null;try{if("parse"in A.output_format)return A.output_format.parse(q);return JSON.parse(q)}catch(g){throw new l(`Failed to parse structured output: ${g}`)}}var o$=(A)=>{let q=0,g=[];while(q<A.length){let E=A[q];if(E==="\\"){q++;continue}if(E==="{"){g.push({type:"brace",value:"{"}),q++;continue}if(E==="}"){g.push({type:"brace",value:"}"}),q++;continue}if(E==="["){g.push({type:"paren",value:"["}),q++;continue}if(E==="]"){g.push({type:"paren",value:"]"}),q++;continue}if(E===":"){g.push({type:"separator",value:":"}),q++;continue}if(E===","){g.push({type:"delimiter",value:","}),q++;continue}if(E==='"'){let j="",U=!1;E=A[++q];while(E!=='"'){if(q===A.length){U=!0;break}if(E==="\\"){if(q++,q===A.length){U=!0;break}j+=E+A[q],E=A[++q]}else j+=E,E=A[++q]}if(E=A[++q],!U)g.push({type:"string",value:j});continue}if(E&&/\s/.test(E)){q++;continue}let K=/[0-9]/;if(E&&K.test(E)||E==="-"||E==="."){let j="";if(E==="-")j+=E,E=A[++q];while(E&&K.test(E)||E===".")j+=E,E=A[++q];g.push({type:"number",value:j});continue}let Z=/[a-z]/i;if(E&&Z.test(E)){let j="";while(E&&Z.test(E)){if(q===A.length)break;j+=E,E=A[++q]}if(j=="true"||j=="false"||j==="null")g.push({type:"name",value:j});else{q++;continue}continue}q++}return g},w6=(A)=>{if(A.length===0)return A;let q=A[A.length-1];switch(q.type){case"separator":return A=A.slice(0,A.length-1),w6(A);break;case"number":let g=q.value[q.value.length-1];if(g==="."||g==="-")return A=A.slice(0,A.length-1),w6(A);case"string":let E=A[A.length-2];if(E?.type==="delimiter")return A=A.slice(0,A.length-1),w6(A);else if(E?.type==="brace"&&E.value==="{")return A=A.slice(0,A.length-1),w6(A);break;case"delimiter":return A=A.slice(0,A.length-1),w6(A);break}return A},e$=(A)=>{let q=[];if(A.map((g)=>{if(g.type==="brace")if(g.value==="{")q.push("}");else q.splice(q.lastIndexOf("}"),1);if(g.type==="paren")if(g.value==="[")q.push("]");else q.splice(q.lastIndexOf("]"),1)}),q.length>0)q.reverse().map((g)=>{if(g==="}")A.push({type:"brace",value:"}"});else if(g==="]")A.push({type:"paren",value:"]"})});return A},AX=(A)=>{let q="";return A.map((g)=>{switch(g.type){case"string":q+='"'+g.value+'"';break;default:q+=g.value;break}}),q},LZ=(A)=>JSON.parse(AX(e$(w6(o$(A)))));var gq,$g,C6,qF,VZ,gF,EF,WZ,FF,nq,KF,NZ,xZ,sg,TZ,IZ,ZF,mU,kO,aZ,fU,cU,dU,DO,yO="__json_buf";function bO(A){return A.type==="tool_use"||A.type==="server_tool_use"||A.type==="mcp_tool_use"}class jF{constructor(A,q){gq.add(this),this.messages=[],this.receivedMessages=[],$g.set(this,void 0),C6.set(this,null),this.controller=new AbortController,qF.set(this,void 0),VZ.set(this,()=>{}),gF.set(this,()=>{}),EF.set(this,void 0),WZ.set(this,()=>{}),FF.set(this,()=>{}),nq.set(this,{}),KF.set(this,!1),NZ.set(this,!1),xZ.set(this,!1),sg.set(this,!1),TZ.set(this,void 0),IZ.set(this,void 0),ZF.set(this,void 0),aZ.set(this,(g)=>{if(v(this,NZ,!0,"f"),tq(g))g=new DA;if(g instanceof DA)return v(this,xZ,!0,"f"),this._emit("abort",g);if(g instanceof l)return this._emit("error",g);if(g instanceof Error){let E=new l(g.message);return E.cause=g,this._emit("error",E)}return this._emit("error",new l(String(g)))}),v(this,qF,new Promise((g,E)=>{v(this,VZ,g,"f"),v(this,gF,E,"f")}),"f"),v(this,EF,new Promise((g,E)=>{v(this,WZ,g,"f"),v(this,FF,E,"f")}),"f"),N(this,qF,"f").catch(()=>{}),N(this,EF,"f").catch(()=>{}),v(this,C6,A,"f"),v(this,ZF,q?.logger??console,"f")}get response(){return N(this,TZ,"f")}get request_id(){return N(this,IZ,"f")}async withResponse(){v(this,sg,!0,"f");let A=await N(this,qF,"f");if(!A)throw Error("Could not resolve a `Response` object");return{data:this,response:A,request_id:A.headers.get("request-id")}}static fromReadableStream(A){let q=new jF(null);return q._run(()=>q._fromReadableStream(A)),q}static createMessage(A,q,g,{logger:E}={}){let F=new jF(q,{logger:E});for(let K of q.messages)F._addMessageParam(K);return v(F,C6,{...q,stream:!0},"f"),F._run(()=>F._createMessage(A,{...q,stream:!0},{...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"stream"}})),F}_run(A){A().then(()=>{this._emitFinal(),this._emit("end")},N(this,aZ,"f"))}_addMessageParam(A){this.messages.push(A)}_addMessage(A,q=!0){if(this.receivedMessages.push(A),q)this._emit("message",A)}async _createMessage(A,q,g){let E=g?.signal,F;if(E){if(E.aborted)this.controller.abort();F=this.controller.abort.bind(this.controller),E.addEventListener("abort",F)}try{N(this,gq,"m",fU).call(this);let{response:K,data:Z}=await A.create({...q,stream:!0},{...g,signal:this.controller.signal}).withResponse();this._connected(K);for await(let j of Z)N(this,gq,"m",cU).call(this,j);if(Z.controller.signal?.aborted)throw new DA;N(this,gq,"m",dU).call(this)}finally{if(E&&F)E.removeEventListener("abort",F)}}_connected(A){if(this.ended)return;v(this,TZ,A,"f"),v(this,IZ,A?.headers.get("request-id"),"f"),N(this,VZ,"f").call(this,A),this._emit("connect")}get ended(){return N(this,KF,"f")}get errored(){return N(this,NZ,"f")}get aborted(){return N(this,xZ,"f")}abort(){this.controller.abort()}on(A,q){return(N(this,nq,"f")[A]||(N(this,nq,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=N(this,nq,"f")[A];if(!g)return this;let E=g.findIndex((F)=>F.listener===q);if(E>=0)g.splice(E,1);return this}once(A,q){return(N(this,nq,"f")[A]||(N(this,nq,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(v(this,sg,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){v(this,sg,!0,"f"),await N(this,EF,"f")}get currentMessage(){return N(this,$g,"f")}async finalMessage(){return await this.done(),N(this,gq,"m",mU).call(this)}async finalText(){return await this.done(),N(this,gq,"m",kO).call(this)}_emit(A,...q){if(N(this,KF,"f"))return;if(A==="end")v(this,KF,!0,"f"),N(this,WZ,"f").call(this);let g=N(this,nq,"f")[A];if(g)N(this,nq,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!N(this,sg,"f")&&!g?.length)Promise.reject(E);N(this,gF,"f").call(this,E),N(this,FF,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!N(this,sg,"f")&&!g?.length)Promise.reject(E);N(this,gF,"f").call(this,E),N(this,FF,"f").call(this,E),this._emit("end")}}_emitFinal(){if(this.receivedMessages.at(-1))this._emit("finalMessage",N(this,gq,"m",mU).call(this))}async _fromReadableStream(A,q){let g=q?.signal,E;if(g){if(g.aborted)this.controller.abort();E=this.controller.abort.bind(this.controller),g.addEventListener("abort",E)}try{N(this,gq,"m",fU).call(this),this._connected(null);let F=iA.fromReadableStream(A,this.controller);for await(let K of F)N(this,gq,"m",cU).call(this,K);if(F.controller.signal?.aborted)throw new DA;N(this,gq,"m",dU).call(this)}finally{if(g&&E)g.removeEventListener("abort",E)}}[($g=new WeakMap,C6=new WeakMap,qF=new WeakMap,VZ=new WeakMap,gF=new WeakMap,EF=new WeakMap,WZ=new WeakMap,FF=new WeakMap,nq=new WeakMap,KF=new WeakMap,NZ=new WeakMap,xZ=new WeakMap,sg=new WeakMap,TZ=new WeakMap,IZ=new WeakMap,ZF=new WeakMap,aZ=new WeakMap,gq=new WeakSet,mU=function(){if(this.receivedMessages.length===0)throw new l("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},kO=function(){if(this.receivedMessages.length===0)throw new l("stream ended without producing a Message with role=assistant");let q=this.receivedMessages.at(-1).content.filter((g)=>g.type==="text").map((g)=>g.text);if(q.length===0)throw new l("stream ended without producing a content block with type=text");return q.join(" ")},fU=function(){if(this.ended)return;v(this,$g,void 0,"f")},cU=function(q){if(this.ended)return;let g=N(this,gq,"m",DO).call(this,q);switch(this._emit("streamEvent",q,g),q.type){case"content_block_delta":{let E=g.content.at(-1);switch(q.delta.type){case"text_delta":{if(E.type==="text")this._emit("text",q.delta.text,E.text||"");break}case"citations_delta":{if(E.type==="text")this._emit("citation",q.delta.citation,E.citations??[]);break}case"input_json_delta":{if(bO(E)&&E.input)this._emit("inputJson",q.delta.partial_json,E.input);break}case"thinking_delta":{if(E.type==="thinking")this._emit("thinking",q.delta.thinking,E.thinking);break}case"signature_delta":{if(E.type==="thinking")this._emit("signature",E.signature);break}default:vO(q.delta)}break}case"message_stop":{this._addMessageParam(g),this._addMessage(bU(g,N(this,C6,"f"),{logger:N(this,ZF,"f")}),!0);break}case"content_block_stop":{this._emit("contentBlock",g.content.at(-1));break}case"message_start":{v(this,$g,g,"f");break}case"content_block_start":case"message_delta":break}},dU=function(){if(this.ended)throw new l("stream has ended, this shouldn't happen");let q=N(this,$g,"f");if(!q)throw new l("request ended without sending any chunks");return v(this,$g,void 0,"f"),bU(q,N(this,C6,"f"),{logger:N(this,ZF,"f")})},DO=function(q){let g=N(this,$g,"f");if(q.type==="message_start"){if(g)throw new l(`Unexpected event order, got ${q.type} before receiving "message_stop"`);return q.message}if(!g)throw new l(`Unexpected event order, got ${q.type} before "message_start"`);switch(q.type){case"message_stop":return g;case"message_delta":if(g.container=q.delta.container,g.stop_reason=q.delta.stop_reason,g.stop_sequence=q.delta.stop_sequence,g.usage.output_tokens=q.usage.output_tokens,g.context_management=q.context_management,q.usage.input_tokens!=null)g.usage.input_tokens=q.usage.input_tokens;if(q.usage.cache_creation_input_tokens!=null)g.usage.cache_creation_input_tokens=q.usage.cache_creation_input_tokens;if(q.usage.cache_read_input_tokens!=null)g.usage.cache_read_input_tokens=q.usage.cache_read_input_tokens;if(q.usage.server_tool_use!=null)g.usage.server_tool_use=q.usage.server_tool_use;return g;case"content_block_start":return g.content.push(q.content_block),g;case"content_block_delta":{let E=g.content.at(q.index);switch(q.delta.type){case"text_delta":{if(E?.type==="text")g.content[q.index]={...E,text:(E.text||"")+q.delta.text};break}case"citations_delta":{if(E?.type==="text")g.content[q.index]={...E,citations:[...E.citations??[],q.delta.citation]};break}case"input_json_delta":{if(E&&bO(E)){let F=E[yO]||"";F+=q.delta.partial_json;let K={...E};if(Object.defineProperty(K,yO,{value:F,enumerable:!1,writable:!0}),F)try{K.input=LZ(F)}catch(Z){let j=new l(`Unable to parse tool parameter JSON from model. Please retry your request or adjust your prompt. Error: ${Z}. JSON: ${F}`);N(this,aZ,"f").call(this,j)}g.content[q.index]=K}break}case"thinking_delta":{if(E?.type==="thinking")g.content[q.index]={...E,thinking:E.thinking+q.delta.thinking};break}case"signature_delta":{if(E?.type==="thinking")g.content[q.index]={...E,signature:q.delta.signature};break}default:vO(q.delta)}return g}case"content_block_stop":return g}},Symbol.asyncIterator)](){let A=[],q=[],g=!1;return this.on("streamEvent",(E)=>{let F=q.shift();if(F)F.resolve(E);else A.push(E)}),this.on("end",()=>{g=!0;for(let E of q)E.resolve(void 0);q.length=0}),this.on("abort",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),this.on("error",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),{next:async()=>{if(!A.length){if(g)return{value:void 0,done:!0};return new Promise((F,K)=>q.push({resolve:F,reject:K})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:A.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new iA(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function vO(A){}var mO=1e5,fO=`You have been working on the task described above but have not yet completed it. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficiently in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include:
|
|
109
|
+
${M}`)}return Z},MA=i4(GM);class _F extends _A{list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/files",Wq,{query:E,...q,headers:AA([{"anthropic-beta":[...g??[],"files-api-2025-04-14"].toString()},q?.headers])})}delete(A,q={},g){let{betas:E}=q??{};return this._client.delete(MA`/v1/files/${A}`,{...g,headers:AA([{"anthropic-beta":[...E??[],"files-api-2025-04-14"].toString()},g?.headers])})}download(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/files/${A}/content`,{...g,headers:AA([{"anthropic-beta":[...E??[],"files-api-2025-04-14"].toString(),Accept:"application/binary"},g?.headers]),__binaryResponse:!0})}retrieveMetadata(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/files/${A}`,{...g,headers:AA([{"anthropic-beta":[...E??[],"files-api-2025-04-14"].toString()},g?.headers])})}upload(A,q){let{betas:g,...E}=A;return this._client.post("/v1/files",p6({body:E,...q,headers:AA([{"anthropic-beta":[...g??[],"files-api-2025-04-14"].toString()},q?.headers])},this._client))}}class $F extends _A{retrieve(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/models/${A}?beta=true`,{...g,headers:AA([{...E?.toString()!=null?{"anthropic-beta":E?.toString()}:void 0},g?.headers])})}list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/models?beta=true",Wq,{query:E,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers])})}}var yZ={"claude-opus-4-20250514":8192,"claude-opus-4-0":8192,"claude-4-opus-20250514":8192,"anthropic.claude-opus-4-20250514-v1:0":8192,"claude-opus-4@20250514":8192,"claude-opus-4-1-20250805":8192,"anthropic.claude-opus-4-1-20250805-v1:0":8192,"claude-opus-4-1@20250805":8192};function $G(A,q,g){if(!q||!("parse"in(q.output_format??{})))return{...A,content:A.content.map((E)=>{if(E.type==="text"){let F=Object.defineProperty({...E},"parsed_output",{value:null,enumerable:!1});return Object.defineProperty(F,"parsed",{get(){return g.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),null},enumerable:!1})}return E}),parsed_output:null};return XG(A,q,g)}function XG(A,q,g){let E=null,F=A.content.map((K)=>{if(K.type==="text"){let Z=n4(q,K.text);if(E===null)E=Z;let j=Object.defineProperty({...K},"parsed_output",{value:Z,enumerable:!1});return Object.defineProperty(j,"parsed",{get(){return g.logger.warn("The `parsed` property on `text` blocks is deprecated, please use `parsed_output` instead."),Z},enumerable:!1})}return K});return{...A,content:F,parsed_output:E}}function n4(A,q){if(A.output_format?.type!=="json_schema")return null;try{if("parse"in A.output_format)return A.output_format.parse(q);return JSON.parse(q)}catch(g){throw new t(`Failed to parse structured output: ${g}`)}}var r4=(A)=>{let q=0,g=[];while(q<A.length){let E=A[q];if(E==="\\"){q++;continue}if(E==="{"){g.push({type:"brace",value:"{"}),q++;continue}if(E==="}"){g.push({type:"brace",value:"}"}),q++;continue}if(E==="["){g.push({type:"paren",value:"["}),q++;continue}if(E==="]"){g.push({type:"paren",value:"]"}),q++;continue}if(E===":"){g.push({type:"separator",value:":"}),q++;continue}if(E===","){g.push({type:"delimiter",value:","}),q++;continue}if(E==='"'){let j="",U=!1;E=A[++q];while(E!=='"'){if(q===A.length){U=!0;break}if(E==="\\"){if(q++,q===A.length){U=!0;break}j+=E+A[q],E=A[++q]}else j+=E,E=A[++q]}if(E=A[++q],!U)g.push({type:"string",value:j});continue}if(E&&/\s/.test(E)){q++;continue}let K=/[0-9]/;if(E&&K.test(E)||E==="-"||E==="."){let j="";if(E==="-")j+=E,E=A[++q];while(E&&K.test(E)||E===".")j+=E,E=A[++q];g.push({type:"number",value:j});continue}let Z=/[a-z]/i;if(E&&Z.test(E)){let j="";while(E&&Z.test(E)){if(q===A.length)break;j+=E,E=A[++q]}if(j=="true"||j=="false"||j==="null")g.push({type:"name",value:j});else{q++;continue}continue}q++}return g},u6=(A)=>{if(A.length===0)return A;let q=A[A.length-1];switch(q.type){case"separator":return A=A.slice(0,A.length-1),u6(A);break;case"number":let g=q.value[q.value.length-1];if(g==="."||g==="-")return A=A.slice(0,A.length-1),u6(A);case"string":let E=A[A.length-2];if(E?.type==="delimiter")return A=A.slice(0,A.length-1),u6(A);else if(E?.type==="brace"&&E.value==="{")return A=A.slice(0,A.length-1),u6(A);break;case"delimiter":return A=A.slice(0,A.length-1),u6(A);break}return A},o4=(A)=>{let q=[];if(A.map((g)=>{if(g.type==="brace")if(g.value==="{")q.push("}");else q.splice(q.lastIndexOf("}"),1);if(g.type==="paren")if(g.value==="[")q.push("]");else q.splice(q.lastIndexOf("]"),1)}),q.length>0)q.reverse().map((g)=>{if(g==="}")A.push({type:"brace",value:"}"});else if(g==="]")A.push({type:"paren",value:"]"})});return A},e4=(A)=>{let q="";return A.map((g)=>{switch(g.type){case"string":q+='"'+g.value+'"';break;default:q+=g.value;break}}),q},bZ=(A)=>JSON.parse(e4(o4(u6(r4(A)))));var Zq,Pg,l6,XF,vZ,HF,LF,mZ,VF,Ag,WF,fZ,cZ,Z6,dZ,pZ,NF,HG,YM,uZ,LG,VG,WG,QM,OM="__json_buf";function JM(A){return A.type==="tool_use"||A.type==="server_tool_use"||A.type==="mcp_tool_use"}class TF{constructor(A,q){Zq.add(this),this.messages=[],this.receivedMessages=[],Pg.set(this,void 0),l6.set(this,null),this.controller=new AbortController,XF.set(this,void 0),vZ.set(this,()=>{}),HF.set(this,()=>{}),LF.set(this,void 0),mZ.set(this,()=>{}),VF.set(this,()=>{}),Ag.set(this,{}),WF.set(this,!1),fZ.set(this,!1),cZ.set(this,!1),Z6.set(this,!1),dZ.set(this,void 0),pZ.set(this,void 0),NF.set(this,void 0),uZ.set(this,(g)=>{if(f(this,fZ,!0,"f"),oq(g))g=new bA;if(g instanceof bA)return f(this,cZ,!0,"f"),this._emit("abort",g);if(g instanceof t)return this._emit("error",g);if(g instanceof Error){let E=new t(g.message);return E.cause=g,this._emit("error",E)}return this._emit("error",new t(String(g)))}),f(this,XF,new Promise((g,E)=>{f(this,vZ,g,"f"),f(this,HF,E,"f")}),"f"),f(this,LF,new Promise((g,E)=>{f(this,mZ,g,"f"),f(this,VF,E,"f")}),"f"),T(this,XF,"f").catch(()=>{}),T(this,LF,"f").catch(()=>{}),f(this,l6,A,"f"),f(this,NF,q?.logger??console,"f")}get response(){return T(this,dZ,"f")}get request_id(){return T(this,pZ,"f")}async withResponse(){f(this,Z6,!0,"f");let A=await T(this,XF,"f");if(!A)throw new Error("Could not resolve a `Response` object");return{data:this,response:A,request_id:A.headers.get("request-id")}}static fromReadableStream(A){let q=new TF(null);return q._run(()=>q._fromReadableStream(A)),q}static createMessage(A,q,g,{logger:E}={}){let F=new TF(q,{logger:E});for(let K of q.messages)F._addMessageParam(K);return f(F,l6,{...q,stream:!0},"f"),F._run(()=>F._createMessage(A,{...q,stream:!0},{...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"stream"}})),F}_run(A){A().then(()=>{this._emitFinal(),this._emit("end")},T(this,uZ,"f"))}_addMessageParam(A){this.messages.push(A)}_addMessage(A,q=!0){if(this.receivedMessages.push(A),q)this._emit("message",A)}async _createMessage(A,q,g){let E=g?.signal,F;if(E){if(E.aborted)this.controller.abort();F=this.controller.abort.bind(this.controller),E.addEventListener("abort",F)}try{T(this,Zq,"m",LG).call(this);let{response:K,data:Z}=await A.create({...q,stream:!0},{...g,signal:this.controller.signal}).withResponse();this._connected(K);for await(let j of Z)T(this,Zq,"m",VG).call(this,j);if(Z.controller.signal?.aborted)throw new bA;T(this,Zq,"m",WG).call(this)}finally{if(E&&F)E.removeEventListener("abort",F)}}_connected(A){if(this.ended)return;f(this,dZ,A,"f"),f(this,pZ,A?.headers.get("request-id"),"f"),T(this,vZ,"f").call(this,A),this._emit("connect")}get ended(){return T(this,WF,"f")}get errored(){return T(this,fZ,"f")}get aborted(){return T(this,cZ,"f")}abort(){this.controller.abort()}on(A,q){return(T(this,Ag,"f")[A]||(T(this,Ag,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=T(this,Ag,"f")[A];if(!g)return this;let E=g.findIndex((F)=>F.listener===q);if(E>=0)g.splice(E,1);return this}once(A,q){return(T(this,Ag,"f")[A]||(T(this,Ag,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(f(this,Z6,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){f(this,Z6,!0,"f"),await T(this,LF,"f")}get currentMessage(){return T(this,Pg,"f")}async finalMessage(){return await this.done(),T(this,Zq,"m",HG).call(this)}async finalText(){return await this.done(),T(this,Zq,"m",YM).call(this)}_emit(A,...q){if(T(this,WF,"f"))return;if(A==="end")f(this,WF,!0,"f"),T(this,mZ,"f").call(this);let g=T(this,Ag,"f")[A];if(g)T(this,Ag,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!T(this,Z6,"f")&&!g?.length)Promise.reject(E);T(this,HF,"f").call(this,E),T(this,VF,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!T(this,Z6,"f")&&!g?.length)Promise.reject(E);T(this,HF,"f").call(this,E),T(this,VF,"f").call(this,E),this._emit("end")}}_emitFinal(){if(this.receivedMessages.at(-1))this._emit("finalMessage",T(this,Zq,"m",HG).call(this))}async _fromReadableStream(A,q){let g=q?.signal,E;if(g){if(g.aborted)this.controller.abort();E=this.controller.abort.bind(this.controller),g.addEventListener("abort",E)}try{T(this,Zq,"m",LG).call(this),this._connected(null);let F=nA.fromReadableStream(A,this.controller);for await(let K of F)T(this,Zq,"m",VG).call(this,K);if(F.controller.signal?.aborted)throw new bA;T(this,Zq,"m",WG).call(this)}finally{if(g&&E)g.removeEventListener("abort",E)}}[(Pg=new WeakMap,l6=new WeakMap,XF=new WeakMap,vZ=new WeakMap,HF=new WeakMap,LF=new WeakMap,mZ=new WeakMap,VF=new WeakMap,Ag=new WeakMap,WF=new WeakMap,fZ=new WeakMap,cZ=new WeakMap,Z6=new WeakMap,dZ=new WeakMap,pZ=new WeakMap,NF=new WeakMap,uZ=new WeakMap,Zq=new WeakSet,HG=function A(){if(this.receivedMessages.length===0)throw new t("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},YM=function A(){if(this.receivedMessages.length===0)throw new t("stream ended without producing a Message with role=assistant");let q=this.receivedMessages.at(-1).content.filter((g)=>g.type==="text").map((g)=>g.text);if(q.length===0)throw new t("stream ended without producing a content block with type=text");return q.join(" ")},LG=function A(){if(this.ended)return;f(this,Pg,void 0,"f")},VG=function A(q){if(this.ended)return;let g=T(this,Zq,"m",QM).call(this,q);switch(this._emit("streamEvent",q,g),q.type){case"content_block_delta":{let E=g.content.at(-1);switch(q.delta.type){case"text_delta":{if(E.type==="text")this._emit("text",q.delta.text,E.text||"");break}case"citations_delta":{if(E.type==="text")this._emit("citation",q.delta.citation,E.citations??[]);break}case"input_json_delta":{if(JM(E)&&E.input)this._emit("inputJson",q.delta.partial_json,E.input);break}case"thinking_delta":{if(E.type==="thinking")this._emit("thinking",q.delta.thinking,E.thinking);break}case"signature_delta":{if(E.type==="thinking")this._emit("signature",E.signature);break}default:MM(q.delta)}break}case"message_stop":{this._addMessageParam(g),this._addMessage($G(g,T(this,l6,"f"),{logger:T(this,NF,"f")}),!0);break}case"content_block_stop":{this._emit("contentBlock",g.content.at(-1));break}case"message_start":{f(this,Pg,g,"f");break}case"content_block_start":case"message_delta":break}},WG=function A(){if(this.ended)throw new t("stream has ended, this shouldn't happen");let q=T(this,Pg,"f");if(!q)throw new t("request ended without sending any chunks");return f(this,Pg,void 0,"f"),$G(q,T(this,l6,"f"),{logger:T(this,NF,"f")})},QM=function A(q){let g=T(this,Pg,"f");if(q.type==="message_start"){if(g)throw new t(`Unexpected event order, got ${q.type} before receiving "message_stop"`);return q.message}if(!g)throw new t(`Unexpected event order, got ${q.type} before "message_start"`);switch(q.type){case"message_stop":return g;case"message_delta":if(g.container=q.delta.container,g.stop_reason=q.delta.stop_reason,g.stop_sequence=q.delta.stop_sequence,g.usage.output_tokens=q.usage.output_tokens,g.context_management=q.context_management,q.usage.input_tokens!=null)g.usage.input_tokens=q.usage.input_tokens;if(q.usage.cache_creation_input_tokens!=null)g.usage.cache_creation_input_tokens=q.usage.cache_creation_input_tokens;if(q.usage.cache_read_input_tokens!=null)g.usage.cache_read_input_tokens=q.usage.cache_read_input_tokens;if(q.usage.server_tool_use!=null)g.usage.server_tool_use=q.usage.server_tool_use;return g;case"content_block_start":return g.content.push(q.content_block),g;case"content_block_delta":{let E=g.content.at(q.index);switch(q.delta.type){case"text_delta":{if(E?.type==="text")g.content[q.index]={...E,text:(E.text||"")+q.delta.text};break}case"citations_delta":{if(E?.type==="text")g.content[q.index]={...E,citations:[...E.citations??[],q.delta.citation]};break}case"input_json_delta":{if(E&&JM(E)){let F=E[OM]||"";F+=q.delta.partial_json;let K={...E};if(Object.defineProperty(K,OM,{value:F,enumerable:!1,writable:!0}),F)try{K.input=bZ(F)}catch(Z){let j=new t(`Unable to parse tool parameter JSON from model. Please retry your request or adjust your prompt. Error: ${Z}. JSON: ${F}`);T(this,uZ,"f").call(this,j)}g.content[q.index]=K}break}case"thinking_delta":{if(E?.type==="thinking")g.content[q.index]={...E,thinking:E.thinking+q.delta.thinking};break}case"signature_delta":{if(E?.type==="thinking")g.content[q.index]={...E,signature:q.delta.signature};break}default:MM(q.delta)}return g}case"content_block_stop":return g}},Symbol.asyncIterator)](){let A=[],q=[],g=!1;return this.on("streamEvent",(E)=>{let F=q.shift();if(F)F.resolve(E);else A.push(E)}),this.on("end",()=>{g=!0;for(let E of q)E.resolve(void 0);q.length=0}),this.on("abort",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),this.on("error",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),{next:async()=>{if(!A.length){if(g)return{value:void 0,done:!0};return new Promise((F,K)=>q.push({resolve:F,reject:K})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:A.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new nA(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function MM(A){}var _M=1e5,$M=`You have been working on the task described above but have not yet completed it. Write a continuation summary that will allow you (or another instance of yourself) to resume work efficiently in a future context window where the conversation history will be replaced with this summary. Your summary should be structured, concise, and actionable. Include:
|
|
101
110
|
1. Task Overview
|
|
102
111
|
The user's core request and success criteria
|
|
103
112
|
Any clarifications or constraints they specified
|
|
@@ -119,29 +128,29 @@ User preferences or style requirements
|
|
|
119
128
|
Domain-specific details that aren't obvious
|
|
120
129
|
Any promises made to the user
|
|
121
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.
|
|
122
|
-
Wrap your summary in <summary></summary> tags.`;var
|
|
123
|
-
Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`);let F=this._client._options.timeout;if(!E.stream&&F==null){let K=HZ[E.model]??void 0;F=this._client.calculateNonstreamingTimeout(E.max_tokens,K)}return this._client.post("/v1/messages?beta=true",{body:E,timeout:F??600000,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers]),stream:A.stream??!1})}parse(A,q){return q={...q,headers:AA([{"anthropic-beta":[...A.betas??[],"structured-outputs-2025-11-13"].toString()},q?.headers])},this.create(A,q).then((g)=>vU(g,A,{logger:this._client.logger??console}))}stream(A,q){return jF.createMessage(this,A,q)}countTokens(A,q){let{betas:g,...E}=A;return this._client.post("/v1/messages/count_tokens?beta=true",{body:E,...q,headers:AA([{"anthropic-beta":[...g??[],"token-counting-2024-11-01"].toString()},q?.headers])})}toolRunner(A,q){return new QF(this._client,A,q)}}rg.Batches=OF;rg.BetaToolRunner=QF;class JF extends _A{create(A,q={},g){let{betas:E,...F}=q??{};return this._client.post(MA`/v1/skills/${A}/versions?beta=true`,B6({body:F,...g,headers:AA([{"anthropic-beta":[...E??[],"skills-2025-10-02"].toString()},g?.headers])},this._client))}retrieve(A,q,g){let{skill_id:E,betas:F}=q;return this._client.get(MA`/v1/skills/${E}/versions/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...F??[],"skills-2025-10-02"].toString()},g?.headers])})}list(A,q={},g){let{betas:E,...F}=q??{};return this._client.getAPIList(MA`/v1/skills/${A}/versions?beta=true`,rE,{query:F,...g,headers:AA([{"anthropic-beta":[...E??[],"skills-2025-10-02"].toString()},g?.headers])})}delete(A,q,g){let{skill_id:E,betas:F}=q;return this._client.delete(MA`/v1/skills/${E}/versions/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...F??[],"skills-2025-10-02"].toString()},g?.headers])})}}class y6 extends _A{constructor(){super(...arguments);this.versions=new JF(this._client)}create(A={},q){let{betas:g,...E}=A??{};return this._client.post("/v1/skills?beta=true",B6({body:E,...q,headers:AA([{"anthropic-beta":[...g??[],"skills-2025-10-02"].toString()},q?.headers])},this._client))}retrieve(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/skills/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...E??[],"skills-2025-10-02"].toString()},g?.headers])})}list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/skills?beta=true",rE,{query:E,...q,headers:AA([{"anthropic-beta":[...g??[],"skills-2025-10-02"].toString()},q?.headers])})}delete(A,q={},g){let{betas:E}=q??{};return this._client.delete(MA`/v1/skills/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...E??[],"skills-2025-10-02"].toString()},g?.headers])})}}y6.Versions=JF;class Tq extends _A{constructor(){super(...arguments);this.models=new AF(this._client),this.messages=new rg(this._client),this.files=new eE(this._client),this.skills=new y6(this._client)}}Tq.Models=AF;Tq.Messages=rg;Tq.Files=eE;Tq.Skills=y6;class b6 extends _A{create(A,q){let{betas:g,...E}=A;return this._client.post("/v1/complete",{body:E,timeout:this._client._options.timeout??600000,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers]),stream:A.stream??!1})}}var Eq,Hg,MF,PZ,_F,$F,RZ,XF,oq,HF,SZ,hZ,og,zZ,BZ,uU,uO,lU,iU,tU,sU,lO,iO="__json_buf";function tO(A){return A.type==="tool_use"||A.type==="server_tool_use"}class LF{constructor(){Eq.add(this),this.messages=[],this.receivedMessages=[],Hg.set(this,void 0),this.controller=new AbortController,MF.set(this,void 0),PZ.set(this,()=>{}),_F.set(this,()=>{}),$F.set(this,void 0),RZ.set(this,()=>{}),XF.set(this,()=>{}),oq.set(this,{}),HF.set(this,!1),SZ.set(this,!1),hZ.set(this,!1),og.set(this,!1),zZ.set(this,void 0),BZ.set(this,void 0),lU.set(this,(A)=>{if(v(this,SZ,!0,"f"),tq(A))A=new DA;if(A instanceof DA)return v(this,hZ,!0,"f"),this._emit("abort",A);if(A instanceof l)return this._emit("error",A);if(A instanceof Error){let q=new l(A.message);return q.cause=A,this._emit("error",q)}return this._emit("error",new l(String(A)))}),v(this,MF,new Promise((A,q)=>{v(this,PZ,A,"f"),v(this,_F,q,"f")}),"f"),v(this,$F,new Promise((A,q)=>{v(this,RZ,A,"f"),v(this,XF,q,"f")}),"f"),N(this,MF,"f").catch(()=>{}),N(this,$F,"f").catch(()=>{})}get response(){return N(this,zZ,"f")}get request_id(){return N(this,BZ,"f")}async withResponse(){v(this,og,!0,"f");let A=await N(this,MF,"f");if(!A)throw Error("Could not resolve a `Response` object");return{data:this,response:A,request_id:A.headers.get("request-id")}}static fromReadableStream(A){let q=new LF;return q._run(()=>q._fromReadableStream(A)),q}static createMessage(A,q,g){let E=new LF;for(let F of q.messages)E._addMessageParam(F);return E._run(()=>E._createMessage(A,{...q,stream:!0},{...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"stream"}})),E}_run(A){A().then(()=>{this._emitFinal(),this._emit("end")},N(this,lU,"f"))}_addMessageParam(A){this.messages.push(A)}_addMessage(A,q=!0){if(this.receivedMessages.push(A),q)this._emit("message",A)}async _createMessage(A,q,g){let E=g?.signal,F;if(E){if(E.aborted)this.controller.abort();F=this.controller.abort.bind(this.controller),E.addEventListener("abort",F)}try{N(this,Eq,"m",iU).call(this);let{response:K,data:Z}=await A.create({...q,stream:!0},{...g,signal:this.controller.signal}).withResponse();this._connected(K);for await(let j of Z)N(this,Eq,"m",tU).call(this,j);if(Z.controller.signal?.aborted)throw new DA;N(this,Eq,"m",sU).call(this)}finally{if(E&&F)E.removeEventListener("abort",F)}}_connected(A){if(this.ended)return;v(this,zZ,A,"f"),v(this,BZ,A?.headers.get("request-id"),"f"),N(this,PZ,"f").call(this,A),this._emit("connect")}get ended(){return N(this,HF,"f")}get errored(){return N(this,SZ,"f")}get aborted(){return N(this,hZ,"f")}abort(){this.controller.abort()}on(A,q){return(N(this,oq,"f")[A]||(N(this,oq,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=N(this,oq,"f")[A];if(!g)return this;let E=g.findIndex((F)=>F.listener===q);if(E>=0)g.splice(E,1);return this}once(A,q){return(N(this,oq,"f")[A]||(N(this,oq,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(v(this,og,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){v(this,og,!0,"f"),await N(this,$F,"f")}get currentMessage(){return N(this,Hg,"f")}async finalMessage(){return await this.done(),N(this,Eq,"m",uU).call(this)}async finalText(){return await this.done(),N(this,Eq,"m",uO).call(this)}_emit(A,...q){if(N(this,HF,"f"))return;if(A==="end")v(this,HF,!0,"f"),N(this,RZ,"f").call(this);let g=N(this,oq,"f")[A];if(g)N(this,oq,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!N(this,og,"f")&&!g?.length)Promise.reject(E);N(this,_F,"f").call(this,E),N(this,XF,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!N(this,og,"f")&&!g?.length)Promise.reject(E);N(this,_F,"f").call(this,E),N(this,XF,"f").call(this,E),this._emit("end")}}_emitFinal(){if(this.receivedMessages.at(-1))this._emit("finalMessage",N(this,Eq,"m",uU).call(this))}async _fromReadableStream(A,q){let g=q?.signal,E;if(g){if(g.aborted)this.controller.abort();E=this.controller.abort.bind(this.controller),g.addEventListener("abort",E)}try{N(this,Eq,"m",iU).call(this),this._connected(null);let F=iA.fromReadableStream(A,this.controller);for await(let K of F)N(this,Eq,"m",tU).call(this,K);if(F.controller.signal?.aborted)throw new DA;N(this,Eq,"m",sU).call(this)}finally{if(g&&E)g.removeEventListener("abort",E)}}[(Hg=new WeakMap,MF=new WeakMap,PZ=new WeakMap,_F=new WeakMap,$F=new WeakMap,RZ=new WeakMap,XF=new WeakMap,oq=new WeakMap,HF=new WeakMap,SZ=new WeakMap,hZ=new WeakMap,og=new WeakMap,zZ=new WeakMap,BZ=new WeakMap,lU=new WeakMap,Eq=new WeakSet,uU=function(){if(this.receivedMessages.length===0)throw new l("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},uO=function(){if(this.receivedMessages.length===0)throw new l("stream ended without producing a Message with role=assistant");let q=this.receivedMessages.at(-1).content.filter((g)=>g.type==="text").map((g)=>g.text);if(q.length===0)throw new l("stream ended without producing a content block with type=text");return q.join(" ")},iU=function(){if(this.ended)return;v(this,Hg,void 0,"f")},tU=function(q){if(this.ended)return;let g=N(this,Eq,"m",lO).call(this,q);switch(this._emit("streamEvent",q,g),q.type){case"content_block_delta":{let E=g.content.at(-1);switch(q.delta.type){case"text_delta":{if(E.type==="text")this._emit("text",q.delta.text,E.text||"");break}case"citations_delta":{if(E.type==="text")this._emit("citation",q.delta.citation,E.citations??[]);break}case"input_json_delta":{if(tO(E)&&E.input)this._emit("inputJson",q.delta.partial_json,E.input);break}case"thinking_delta":{if(E.type==="thinking")this._emit("thinking",q.delta.thinking,E.thinking);break}case"signature_delta":{if(E.type==="thinking")this._emit("signature",E.signature);break}default:sO(q.delta)}break}case"message_stop":{this._addMessageParam(g),this._addMessage(g,!0);break}case"content_block_stop":{this._emit("contentBlock",g.content.at(-1));break}case"message_start":{v(this,Hg,g,"f");break}case"content_block_start":case"message_delta":break}},sU=function(){if(this.ended)throw new l("stream has ended, this shouldn't happen");let q=N(this,Hg,"f");if(!q)throw new l("request ended without sending any chunks");return v(this,Hg,void 0,"f"),q},lO=function(q){let g=N(this,Hg,"f");if(q.type==="message_start"){if(g)throw new l(`Unexpected event order, got ${q.type} before receiving "message_stop"`);return q.message}if(!g)throw new l(`Unexpected event order, got ${q.type} before "message_start"`);switch(q.type){case"message_stop":return g;case"message_delta":if(g.stop_reason=q.delta.stop_reason,g.stop_sequence=q.delta.stop_sequence,g.usage.output_tokens=q.usage.output_tokens,q.usage.input_tokens!=null)g.usage.input_tokens=q.usage.input_tokens;if(q.usage.cache_creation_input_tokens!=null)g.usage.cache_creation_input_tokens=q.usage.cache_creation_input_tokens;if(q.usage.cache_read_input_tokens!=null)g.usage.cache_read_input_tokens=q.usage.cache_read_input_tokens;if(q.usage.server_tool_use!=null)g.usage.server_tool_use=q.usage.server_tool_use;return g;case"content_block_start":return g.content.push({...q.content_block}),g;case"content_block_delta":{let E=g.content.at(q.index);switch(q.delta.type){case"text_delta":{if(E?.type==="text")g.content[q.index]={...E,text:(E.text||"")+q.delta.text};break}case"citations_delta":{if(E?.type==="text")g.content[q.index]={...E,citations:[...E.citations??[],q.delta.citation]};break}case"input_json_delta":{if(E&&tO(E)){let F=E[iO]||"";F+=q.delta.partial_json;let K={...E};if(Object.defineProperty(K,iO,{value:F,enumerable:!1,writable:!0}),F)K.input=LZ(F);g.content[q.index]=K}break}case"thinking_delta":{if(E?.type==="thinking")g.content[q.index]={...E,thinking:E.thinking+q.delta.thinking};break}case"signature_delta":{if(E?.type==="thinking")g.content[q.index]={...E,signature:q.delta.signature};break}default:sO(q.delta)}return g}case"content_block_stop":return g}},Symbol.asyncIterator)](){let A=[],q=[],g=!1;return this.on("streamEvent",(E)=>{let F=q.shift();if(F)F.resolve(E);else A.push(E)}),this.on("end",()=>{g=!0;for(let E of q)E.resolve(void 0);q.length=0}),this.on("abort",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),this.on("error",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),{next:async()=>{if(!A.length){if(g)return{value:void 0,done:!0};return new Promise((F,K)=>q.push({resolve:F,reject:K})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:A.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new iA(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function sO(A){}class VF extends _A{create(A,q){return this._client.post("/v1/messages/batches",{body:A,...q})}retrieve(A,q){return this._client.get(MA`/v1/messages/batches/${A}`,q)}list(A={},q){return this._client.getAPIList("/v1/messages/batches",$q,{query:A,...q})}delete(A,q){return this._client.delete(MA`/v1/messages/batches/${A}`,q)}cancel(A,q){return this._client.post(MA`/v1/messages/batches/${A}/cancel`,q)}async results(A,q){let g=await this.retrieve(A);if(!g.results_url)throw new l(`No batch \`results_url\`; Has it finished processing? ${g.processing_status} - ${g.id}`);return this._client.get(g.results_url,{...q,headers:AA([{Accept:"application/binary"},q?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((E,F)=>D6.fromResponse(F.response,F.controller))}}class eg extends _A{constructor(){super(...arguments);this.batches=new VF(this._client)}create(A,q){if(A.model in nO)console.warn(`The model '${A.model}' is deprecated and will reach end-of-life on ${nO[A.model]}
|
|
124
|
-
Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`);let g=this._client._options.timeout;if(!A.stream&&g==null){let E=
|
|
131
|
+
Wrap your summary in <summary></summary> tags.`;var IF,i6,j6,TA,xF,rA,qg,Rg,PF,XM,NG;function HM(){let A,q;return{promise:new Promise((E,F)=>{A=E,q=F}),resolve:A,reject:q}}class RF{constructor(A,q,g){IF.add(this),this.client=A,i6.set(this,!1),j6.set(this,!1),TA.set(this,void 0),xF.set(this,void 0),rA.set(this,void 0),qg.set(this,void 0),Rg.set(this,void 0),PF.set(this,0),f(this,TA,{params:{...q,messages:structuredClone(q.messages)}},"f"),f(this,xF,{...g,headers:AA([{"x-stainless-helper":"BetaToolRunner"},g?.headers])},"f"),f(this,Rg,HM(),"f")}async*[(i6=new WeakMap,j6=new WeakMap,TA=new WeakMap,xF=new WeakMap,rA=new WeakMap,qg=new WeakMap,Rg=new WeakMap,PF=new WeakMap,IF=new WeakSet,XM=async function A(){let q=T(this,TA,"f").params.compactionControl;if(!q||!q.enabled)return!1;let g=0;if(T(this,rA,"f")!==void 0)try{let U=await T(this,rA,"f");g=U.usage.input_tokens+(U.usage.cache_creation_input_tokens??0)+(U.usage.cache_read_input_tokens??0)+U.usage.output_tokens}catch{return!1}let E=q.contextTokenThreshold??_M;if(g<E)return!1;let F=q.model??T(this,TA,"f").params.model,K=q.summaryPrompt??$M,Z=T(this,TA,"f").params.messages;if(Z[Z.length-1].role==="assistant"){let U=Z[Z.length-1];if(Array.isArray(U.content)){let G=U.content.filter((Y)=>Y.type!=="tool_use");if(G.length===0)Z.pop();else U.content=G}}let j=await this.client.beta.messages.create({model:F,messages:[...Z,{role:"user",content:[{type:"text",text:K}]}],max_tokens:T(this,TA,"f").params.max_tokens},{headers:{"x-stainless-helper":"compaction"}});if(j.content[0]?.type!=="text")throw new t("Expected text response for compaction");return T(this,TA,"f").params.messages=[{role:"user",content:j.content}],!0},Symbol.asyncIterator)](){var A;if(T(this,i6,"f"))throw new t("Cannot iterate over a consumed stream");f(this,i6,!0,"f"),f(this,j6,!0,"f"),f(this,qg,void 0,"f");try{while(!0){let q;try{if(T(this,TA,"f").params.max_iterations&&T(this,PF,"f")>=T(this,TA,"f").params.max_iterations)break;f(this,j6,!1,"f"),f(this,qg,void 0,"f"),f(this,PF,(A=T(this,PF,"f"),A++,A),"f"),f(this,rA,void 0,"f");let{max_iterations:g,compactionControl:E,...F}=T(this,TA,"f").params;if(F.stream)q=this.client.beta.messages.stream({...F},T(this,xF,"f")),f(this,rA,q.finalMessage(),"f"),T(this,rA,"f").catch(()=>{}),yield q;else f(this,rA,this.client.beta.messages.create({...F,stream:!1},T(this,xF,"f")),"f"),yield T(this,rA,"f");if(!await T(this,IF,"m",XM).call(this)){if(!T(this,j6,"f")){let{role:j,content:U}=await T(this,rA,"f");T(this,TA,"f").params.messages.push({role:j,content:U})}let Z=await T(this,IF,"m",NG).call(this,T(this,TA,"f").params.messages.at(-1));if(Z)T(this,TA,"f").params.messages.push(Z);else if(!T(this,j6,"f"))break}}finally{if(q)q.abort()}}if(!T(this,rA,"f"))throw new t("ToolRunner concluded without a message from the server");T(this,Rg,"f").resolve(await T(this,rA,"f"))}catch(q){throw f(this,i6,!1,"f"),T(this,Rg,"f").promise.catch(()=>{}),T(this,Rg,"f").reject(q),f(this,Rg,HM(),"f"),q}}setMessagesParams(A){if(typeof A==="function")T(this,TA,"f").params=A(T(this,TA,"f").params);else T(this,TA,"f").params=A;f(this,j6,!0,"f"),f(this,qg,void 0,"f")}async generateToolResponse(){let A=await T(this,rA,"f")??this.params.messages.at(-1);if(!A)return null;return T(this,IF,"m",NG).call(this,A)}done(){return T(this,Rg,"f").promise}async runUntilDone(){if(!T(this,i6,"f"))for await(let A of this);return this.done()}get params(){return T(this,TA,"f").params}pushMessages(...A){this.setMessagesParams((q)=>({...q,messages:[...q.messages,...A]}))}then(A,q){return this.runUntilDone().then(A,q)}}NG=async function A(q){if(T(this,qg,"f")!==void 0)return T(this,qg,"f");return f(this,qg,AH(T(this,TA,"f").params,q),"f"),T(this,qg,"f")};async function AH(A,q=A.messages.at(-1)){if(!q||q.role!=="assistant"||!q.content||typeof q.content==="string")return null;let g=q.content.filter((F)=>F.type==="tool_use");if(g.length===0)return null;return{role:"user",content:await Promise.all(g.map(async(F)=>{let K=A.tools.find((Z)=>("name"in Z?Z.name:Z.mcp_server_name)===F.name);if(!K||!("run"in K))return{type:"tool_result",tool_use_id:F.id,content:`Error: Tool '${F.name}' not found`,is_error:!0};try{let Z=F.input;if("parse"in K&&K.parse)Z=K.parse(Z);let j=await K.run(Z);return{type:"tool_result",tool_use_id:F.id,content:j}}catch(Z){return{type:"tool_result",tool_use_id:F.id,content:`Error: ${Z instanceof Error?Z.message:String(Z)}`,is_error:!0}}}))}}class t6{constructor(A,q){this.iterator=A,this.controller=q}async*decoder(){let A=new xg;for await(let q of this.iterator)for(let g of A.decode(q))yield JSON.parse(g);for(let q of A.flush())yield JSON.parse(q)}[Symbol.asyncIterator](){return this.decoder()}static fromResponse(A,q){if(!A.body){if(q.abort(),typeof globalThis.navigator!=="undefined"&&globalThis.navigator.product==="ReactNative")throw new t("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new t("Attempted to iterate over a response with no body")}return new t6(UF(A.body),q)}}class SF extends _A{create(A,q){let{betas:g,...E}=A;return this._client.post("/v1/messages/batches?beta=true",{body:E,...q,headers:AA([{"anthropic-beta":[...g??[],"message-batches-2024-09-24"].toString()},q?.headers])})}retrieve(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/messages/batches/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...E??[],"message-batches-2024-09-24"].toString()},g?.headers])})}list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/messages/batches?beta=true",Wq,{query:E,...q,headers:AA([{"anthropic-beta":[...g??[],"message-batches-2024-09-24"].toString()},q?.headers])})}delete(A,q={},g){let{betas:E}=q??{};return this._client.delete(MA`/v1/messages/batches/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...E??[],"message-batches-2024-09-24"].toString()},g?.headers])})}cancel(A,q={},g){let{betas:E}=q??{};return this._client.post(MA`/v1/messages/batches/${A}/cancel?beta=true`,{...g,headers:AA([{"anthropic-beta":[...E??[],"message-batches-2024-09-24"].toString()},g?.headers])})}async results(A,q={},g){let E=await this.retrieve(A);if(!E.results_url)throw new t(`No batch \`results_url\`; Has it finished processing? ${E.processing_status} - ${E.id}`);let{betas:F}=q??{};return this._client.get(E.results_url,{...g,headers:AA([{"anthropic-beta":[...F??[],"message-batches-2024-09-24"].toString(),Accept:"application/binary"},g?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((K,Z)=>t6.fromResponse(Z.response,Z.controller))}}var LM={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026"};class U6 extends _A{constructor(){super(...arguments);this.batches=new SF(this._client)}create(A,q){let{betas:g,...E}=A;if(E.model in LM)console.warn(`The model '${E.model}' is deprecated and will reach end-of-life on ${LM[E.model]}
|
|
132
|
+
Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`);let F=this._client._options.timeout;if(!E.stream&&F==null){let K=yZ[E.model]??void 0;F=this._client.calculateNonstreamingTimeout(E.max_tokens,K)}return this._client.post("/v1/messages?beta=true",{body:E,timeout:F??600000,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers]),stream:A.stream??!1})}parse(A,q){return q={...q,headers:AA([{"anthropic-beta":[...A.betas??[],"structured-outputs-2025-11-13"].toString()},q?.headers])},this.create(A,q).then((g)=>XG(g,A,{logger:this._client.logger??console}))}stream(A,q){return TF.createMessage(this,A,q)}countTokens(A,q){let{betas:g,...E}=A;return this._client.post("/v1/messages/count_tokens?beta=true",{body:E,...q,headers:AA([{"anthropic-beta":[...g??[],"token-counting-2024-11-01"].toString()},q?.headers])})}toolRunner(A,q){return new RF(this._client,A,q)}}U6.Batches=SF;U6.BetaToolRunner=RF;class aF extends _A{create(A,q={},g){let{betas:E,...F}=q??{};return this._client.post(MA`/v1/skills/${A}/versions?beta=true`,p6({body:F,...g,headers:AA([{"anthropic-beta":[...E??[],"skills-2025-10-02"].toString()},g?.headers])},this._client))}retrieve(A,q,g){let{skill_id:E,betas:F}=q;return this._client.get(MA`/v1/skills/${E}/versions/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...F??[],"skills-2025-10-02"].toString()},g?.headers])})}list(A,q={},g){let{betas:E,...F}=q??{};return this._client.getAPIList(MA`/v1/skills/${A}/versions?beta=true`,JF,{query:F,...g,headers:AA([{"anthropic-beta":[...E??[],"skills-2025-10-02"].toString()},g?.headers])})}delete(A,q,g){let{skill_id:E,betas:F}=q;return this._client.delete(MA`/v1/skills/${E}/versions/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...F??[],"skills-2025-10-02"].toString()},g?.headers])})}}class s6 extends _A{constructor(){super(...arguments);this.versions=new aF(this._client)}create(A={},q){let{betas:g,...E}=A??{};return this._client.post("/v1/skills?beta=true",p6({body:E,...q,headers:AA([{"anthropic-beta":[...g??[],"skills-2025-10-02"].toString()},q?.headers])},this._client))}retrieve(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/skills/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...E??[],"skills-2025-10-02"].toString()},g?.headers])})}list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/skills?beta=true",JF,{query:E,...q,headers:AA([{"anthropic-beta":[...g??[],"skills-2025-10-02"].toString()},q?.headers])})}delete(A,q={},g){let{betas:E}=q??{};return this._client.delete(MA`/v1/skills/${A}?beta=true`,{...g,headers:AA([{"anthropic-beta":[...E??[],"skills-2025-10-02"].toString()},g?.headers])})}}s6.Versions=aF;class aq extends _A{constructor(){super(...arguments);this.models=new $F(this._client),this.messages=new U6(this._client),this.files=new _F(this._client),this.skills=new s6(this._client)}}aq.Models=$F;aq.Messages=U6;aq.Files=_F;aq.Skills=s6;class n6 extends _A{create(A,q){let{betas:g,...E}=A;return this._client.post("/v1/complete",{body:E,timeout:this._client._options.timeout??600000,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers]),stream:A.stream??!1})}}var jq,Sg,hF,lZ,zF,BF,iZ,wF,gg,CF,tZ,sZ,G6,nZ,rZ,TG,VM,IG,xG,PG,RG,WM,NM="__json_buf";function TM(A){return A.type==="tool_use"||A.type==="server_tool_use"}class kF{constructor(){jq.add(this),this.messages=[],this.receivedMessages=[],Sg.set(this,void 0),this.controller=new AbortController,hF.set(this,void 0),lZ.set(this,()=>{}),zF.set(this,()=>{}),BF.set(this,void 0),iZ.set(this,()=>{}),wF.set(this,()=>{}),gg.set(this,{}),CF.set(this,!1),tZ.set(this,!1),sZ.set(this,!1),G6.set(this,!1),nZ.set(this,void 0),rZ.set(this,void 0),IG.set(this,(A)=>{if(f(this,tZ,!0,"f"),oq(A))A=new bA;if(A instanceof bA)return f(this,sZ,!0,"f"),this._emit("abort",A);if(A instanceof t)return this._emit("error",A);if(A instanceof Error){let q=new t(A.message);return q.cause=A,this._emit("error",q)}return this._emit("error",new t(String(A)))}),f(this,hF,new Promise((A,q)=>{f(this,lZ,A,"f"),f(this,zF,q,"f")}),"f"),f(this,BF,new Promise((A,q)=>{f(this,iZ,A,"f"),f(this,wF,q,"f")}),"f"),T(this,hF,"f").catch(()=>{}),T(this,BF,"f").catch(()=>{})}get response(){return T(this,nZ,"f")}get request_id(){return T(this,rZ,"f")}async withResponse(){f(this,G6,!0,"f");let A=await T(this,hF,"f");if(!A)throw new Error("Could not resolve a `Response` object");return{data:this,response:A,request_id:A.headers.get("request-id")}}static fromReadableStream(A){let q=new kF;return q._run(()=>q._fromReadableStream(A)),q}static createMessage(A,q,g){let E=new kF;for(let F of q.messages)E._addMessageParam(F);return E._run(()=>E._createMessage(A,{...q,stream:!0},{...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"stream"}})),E}_run(A){A().then(()=>{this._emitFinal(),this._emit("end")},T(this,IG,"f"))}_addMessageParam(A){this.messages.push(A)}_addMessage(A,q=!0){if(this.receivedMessages.push(A),q)this._emit("message",A)}async _createMessage(A,q,g){let E=g?.signal,F;if(E){if(E.aborted)this.controller.abort();F=this.controller.abort.bind(this.controller),E.addEventListener("abort",F)}try{T(this,jq,"m",xG).call(this);let{response:K,data:Z}=await A.create({...q,stream:!0},{...g,signal:this.controller.signal}).withResponse();this._connected(K);for await(let j of Z)T(this,jq,"m",PG).call(this,j);if(Z.controller.signal?.aborted)throw new bA;T(this,jq,"m",RG).call(this)}finally{if(E&&F)E.removeEventListener("abort",F)}}_connected(A){if(this.ended)return;f(this,nZ,A,"f"),f(this,rZ,A?.headers.get("request-id"),"f"),T(this,lZ,"f").call(this,A),this._emit("connect")}get ended(){return T(this,CF,"f")}get errored(){return T(this,tZ,"f")}get aborted(){return T(this,sZ,"f")}abort(){this.controller.abort()}on(A,q){return(T(this,gg,"f")[A]||(T(this,gg,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=T(this,gg,"f")[A];if(!g)return this;let E=g.findIndex((F)=>F.listener===q);if(E>=0)g.splice(E,1);return this}once(A,q){return(T(this,gg,"f")[A]||(T(this,gg,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(f(this,G6,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){f(this,G6,!0,"f"),await T(this,BF,"f")}get currentMessage(){return T(this,Sg,"f")}async finalMessage(){return await this.done(),T(this,jq,"m",TG).call(this)}async finalText(){return await this.done(),T(this,jq,"m",VM).call(this)}_emit(A,...q){if(T(this,CF,"f"))return;if(A==="end")f(this,CF,!0,"f"),T(this,iZ,"f").call(this);let g=T(this,gg,"f")[A];if(g)T(this,gg,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!T(this,G6,"f")&&!g?.length)Promise.reject(E);T(this,zF,"f").call(this,E),T(this,wF,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!T(this,G6,"f")&&!g?.length)Promise.reject(E);T(this,zF,"f").call(this,E),T(this,wF,"f").call(this,E),this._emit("end")}}_emitFinal(){if(this.receivedMessages.at(-1))this._emit("finalMessage",T(this,jq,"m",TG).call(this))}async _fromReadableStream(A,q){let g=q?.signal,E;if(g){if(g.aborted)this.controller.abort();E=this.controller.abort.bind(this.controller),g.addEventListener("abort",E)}try{T(this,jq,"m",xG).call(this),this._connected(null);let F=nA.fromReadableStream(A,this.controller);for await(let K of F)T(this,jq,"m",PG).call(this,K);if(F.controller.signal?.aborted)throw new bA;T(this,jq,"m",RG).call(this)}finally{if(g&&E)g.removeEventListener("abort",E)}}[(Sg=new WeakMap,hF=new WeakMap,lZ=new WeakMap,zF=new WeakMap,BF=new WeakMap,iZ=new WeakMap,wF=new WeakMap,gg=new WeakMap,CF=new WeakMap,tZ=new WeakMap,sZ=new WeakMap,G6=new WeakMap,nZ=new WeakMap,rZ=new WeakMap,IG=new WeakMap,jq=new WeakSet,TG=function A(){if(this.receivedMessages.length===0)throw new t("stream ended without producing a Message with role=assistant");return this.receivedMessages.at(-1)},VM=function A(){if(this.receivedMessages.length===0)throw new t("stream ended without producing a Message with role=assistant");let q=this.receivedMessages.at(-1).content.filter((g)=>g.type==="text").map((g)=>g.text);if(q.length===0)throw new t("stream ended without producing a content block with type=text");return q.join(" ")},xG=function A(){if(this.ended)return;f(this,Sg,void 0,"f")},PG=function A(q){if(this.ended)return;let g=T(this,jq,"m",WM).call(this,q);switch(this._emit("streamEvent",q,g),q.type){case"content_block_delta":{let E=g.content.at(-1);switch(q.delta.type){case"text_delta":{if(E.type==="text")this._emit("text",q.delta.text,E.text||"");break}case"citations_delta":{if(E.type==="text")this._emit("citation",q.delta.citation,E.citations??[]);break}case"input_json_delta":{if(TM(E)&&E.input)this._emit("inputJson",q.delta.partial_json,E.input);break}case"thinking_delta":{if(E.type==="thinking")this._emit("thinking",q.delta.thinking,E.thinking);break}case"signature_delta":{if(E.type==="thinking")this._emit("signature",E.signature);break}default:IM(q.delta)}break}case"message_stop":{this._addMessageParam(g),this._addMessage(g,!0);break}case"content_block_stop":{this._emit("contentBlock",g.content.at(-1));break}case"message_start":{f(this,Sg,g,"f");break}case"content_block_start":case"message_delta":break}},RG=function A(){if(this.ended)throw new t("stream has ended, this shouldn't happen");let q=T(this,Sg,"f");if(!q)throw new t("request ended without sending any chunks");return f(this,Sg,void 0,"f"),q},WM=function A(q){let g=T(this,Sg,"f");if(q.type==="message_start"){if(g)throw new t(`Unexpected event order, got ${q.type} before receiving "message_stop"`);return q.message}if(!g)throw new t(`Unexpected event order, got ${q.type} before "message_start"`);switch(q.type){case"message_stop":return g;case"message_delta":if(g.stop_reason=q.delta.stop_reason,g.stop_sequence=q.delta.stop_sequence,g.usage.output_tokens=q.usage.output_tokens,q.usage.input_tokens!=null)g.usage.input_tokens=q.usage.input_tokens;if(q.usage.cache_creation_input_tokens!=null)g.usage.cache_creation_input_tokens=q.usage.cache_creation_input_tokens;if(q.usage.cache_read_input_tokens!=null)g.usage.cache_read_input_tokens=q.usage.cache_read_input_tokens;if(q.usage.server_tool_use!=null)g.usage.server_tool_use=q.usage.server_tool_use;return g;case"content_block_start":return g.content.push({...q.content_block}),g;case"content_block_delta":{let E=g.content.at(q.index);switch(q.delta.type){case"text_delta":{if(E?.type==="text")g.content[q.index]={...E,text:(E.text||"")+q.delta.text};break}case"citations_delta":{if(E?.type==="text")g.content[q.index]={...E,citations:[...E.citations??[],q.delta.citation]};break}case"input_json_delta":{if(E&&TM(E)){let F=E[NM]||"";F+=q.delta.partial_json;let K={...E};if(Object.defineProperty(K,NM,{value:F,enumerable:!1,writable:!0}),F)K.input=bZ(F);g.content[q.index]=K}break}case"thinking_delta":{if(E?.type==="thinking")g.content[q.index]={...E,thinking:E.thinking+q.delta.thinking};break}case"signature_delta":{if(E?.type==="thinking")g.content[q.index]={...E,signature:q.delta.signature};break}default:IM(q.delta)}return g}case"content_block_stop":return g}},Symbol.asyncIterator)](){let A=[],q=[],g=!1;return this.on("streamEvent",(E)=>{let F=q.shift();if(F)F.resolve(E);else A.push(E)}),this.on("end",()=>{g=!0;for(let E of q)E.resolve(void 0);q.length=0}),this.on("abort",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),this.on("error",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),{next:async()=>{if(!A.length){if(g)return{value:void 0,done:!0};return new Promise((F,K)=>q.push({resolve:F,reject:K})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:A.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new nA(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function IM(A){}class DF extends _A{create(A,q){return this._client.post("/v1/messages/batches",{body:A,...q})}retrieve(A,q){return this._client.get(MA`/v1/messages/batches/${A}`,q)}list(A={},q){return this._client.getAPIList("/v1/messages/batches",Wq,{query:A,...q})}delete(A,q){return this._client.delete(MA`/v1/messages/batches/${A}`,q)}cancel(A,q){return this._client.post(MA`/v1/messages/batches/${A}/cancel`,q)}async results(A,q){let g=await this.retrieve(A);if(!g.results_url)throw new t(`No batch \`results_url\`; Has it finished processing? ${g.processing_status} - ${g.id}`);return this._client.get(g.results_url,{...q,headers:AA([{Accept:"application/binary"},q?.headers]),stream:!0,__binaryResponse:!0})._thenUnwrap((E,F)=>t6.fromResponse(F.response,F.controller))}}class Y6 extends _A{constructor(){super(...arguments);this.batches=new DF(this._client)}create(A,q){if(A.model in xM)console.warn(`The model '${A.model}' is deprecated and will reach end-of-life on ${xM[A.model]}
|
|
133
|
+
Please migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`);let g=this._client._options.timeout;if(!A.stream&&g==null){let E=yZ[A.model]??void 0;g=this._client.calculateNonstreamingTimeout(A.max_tokens,E)}return this._client.post("/v1/messages",{body:A,timeout:g??600000,...q,stream:A.stream??!1})}stream(A,q){return kF.createMessage(this,A,q)}countTokens(A,q){return this._client.post("/v1/messages/count_tokens",{body:A,...q})}}var xM={"claude-1.3":"November 6th, 2024","claude-1.3-100k":"November 6th, 2024","claude-instant-1.1":"November 6th, 2024","claude-instant-1.1-100k":"November 6th, 2024","claude-instant-1.2":"November 6th, 2024","claude-3-sonnet-20240229":"July 21st, 2025","claude-3-opus-20240229":"January 5th, 2026","claude-2.1":"July 21st, 2025","claude-2.0":"July 21st, 2025","claude-3-7-sonnet-latest":"February 19th, 2026","claude-3-7-sonnet-20250219":"February 19th, 2026"};Y6.Batches=DF;class r6 extends _A{retrieve(A,q={},g){let{betas:E}=q??{};return this._client.get(MA`/v1/models/${A}`,{...g,headers:AA([{...E?.toString()!=null?{"anthropic-beta":E?.toString()}:void 0},g?.headers])})}list(A={},q){let{betas:g,...E}=A??{};return this._client.getAPIList("/v1/models",Wq,{query:E,...q,headers:AA([{...g?.toString()!=null?{"anthropic-beta":g?.toString()}:void 0},q?.headers])})}}var yF=(A)=>{if(typeof globalThis.process!=="undefined")return globalThis.process.env?.[A]?.trim()??void 0;if(typeof globalThis.Deno!=="undefined")return globalThis.Deno.env?.get?.(A)?.trim();return};var SG,aG,oZ,PM,RM="\\n\\nHuman:",SM="\\n\\nAssistant:";class $A{constructor({baseURL:A=yF("ANTHROPIC_BASE_URL"),apiKey:q=yF("ANTHROPIC_API_KEY")??null,authToken:g=yF("ANTHROPIC_AUTH_TOKEN")??null,...E}={}){SG.add(this),oZ.set(this,void 0);let F={apiKey:q,authToken:g,...E,baseURL:A||"https://api.anthropic.com"};if(!F.dangerouslyAllowBrowser&&tJ())throw new t(`It looks like you're running in a browser-like environment.
|
|
125
134
|
|
|
126
135
|
This is disabled by default, as it risks exposing your secret API credentials to attackers.
|
|
127
136
|
If you understand the risks and have appropriate mitigations in place,
|
|
128
137
|
you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
|
|
129
138
|
|
|
130
139
|
new Anthropic({ apiKey, dangerouslyAllowBrowser: true });
|
|
131
|
-
`);this.baseURL=F.baseURL,this.timeout=F.timeout??rU.DEFAULT_TIMEOUT,this.logger=F.logger??console;let K="warn";this.logLevel=K,this.logLevel=zU(F.logLevel,"ClientOptions.logLevel",this)??zU(WF("ANTHROPIC_LOG"),"process.env['ANTHROPIC_LOG']",this)??K,this.fetchOptions=F.fetchOptions,this.maxRetries=F.maxRetries??2,this.fetch=F.fetch??WO(),v(this,wZ,xO,"f"),this._options=F,this.apiKey=typeof q==="string"?q:null,this.authToken=g}withOptions(A){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,authToken:this.authToken,...A})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:A,nulls:q}){if(A.get("x-api-key")||A.get("authorization"))return;if(this.apiKey&&A.get("x-api-key"))return;if(q.has("x-api-key"))return;if(this.authToken&&A.get("authorization"))return;if(q.has("authorization"))return;throw Error('Could not resolve authentication method. Expected either apiKey or authToken to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted')}async authHeaders(A){return AA([await this.apiKeyAuth(A),await this.bearerAuth(A)])}async apiKeyAuth(A){if(this.apiKey==null)return;return AA([{"X-Api-Key":this.apiKey}])}async bearerAuth(A){if(this.authToken==null)return;return AA([{Authorization:`Bearer ${this.authToken}`}])}stringifyQuery(A){return Object.entries(A).filter(([q,g])=>typeof g<"u").map(([q,g])=>{if(typeof g==="string"||typeof g==="number"||typeof g==="boolean")return`${encodeURIComponent(q)}=${encodeURIComponent(g)}`;if(g===null)return`${encodeURIComponent(q)}=`;throw new l(`Cannot stringify type ${typeof g}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}getUserAgent(){return`${this.constructor.name}/JS ${Mg}`}defaultIdempotencyKey(){return`stainless-node-retry-${aU()}`}makeStatusError(A,q,g,E){return NA.generate(A,q,g,E)}buildURL(A,q,g){let E=!N(this,nU,"m",rO).call(this)&&g||this.baseURL,F=QO(A)?new URL(A):new URL(E+(E.endsWith("/")&&A.startsWith("/")?A.slice(1):A)),K=this.defaultQuery();if(!OO(K))q={...K,...q};if(typeof q==="object"&&q&&!Array.isArray(q))F.search=this.stringifyQuery(q);return F.toString()}_calculateNonstreamingTimeout(A){if(3600*A/128000>600)throw new l("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#streaming-responses for more details");return 600000}async prepareOptions(A){}async prepareRequest(A,{url:q,options:g}){}get(A,q){return this.methodRequest("get",A,q)}post(A,q){return this.methodRequest("post",A,q)}patch(A,q){return this.methodRequest("patch",A,q)}put(A,q){return this.methodRequest("put",A,q)}delete(A,q){return this.methodRequest("delete",A,q)}methodRequest(A,q,g){return this.request(Promise.resolve(g).then((E)=>{return{method:A,path:q,...E}}))}request(A,q=null){return new ig(this,this.makeRequest(A,q,void 0))}async makeRequest(A,q,g){let E=await A,F=E.maxRetries??this.maxRetries;if(q==null)q=F;await this.prepareOptions(E);let{req:K,url:Z,timeout:j}=await this.buildRequest(E,{retryCount:F-q});await this.prepareRequest(K,{url:Z,options:E});let U="log_"+(Math.random()*16777216|0).toString(16).padStart(6,"0"),O=g===void 0?"":`, retryOf: ${g}`,Y=Date.now();if(SA(this).debug(`[${U}] sending request`,sq({retryOfRequestLogID:g,method:E.method,url:Z,options:E,headers:K.headers})),E.signal?.aborted)throw new DA;let M=new AbortController,J=await this.fetchWithTimeout(Z,K,j,M).catch(DE),$=Date.now();if(J instanceof globalThis.Error){let x=`retrying, ${q} attempts remaining`;if(E.signal?.aborted)throw new DA;let V=tq(J)||/timed? ?out/i.test(String(J)+("cause"in J?String(J.cause):""));if(q)return SA(this).info(`[${U}] connection ${V?"timed out":"failed"} - ${x}`),SA(this).debug(`[${U}] connection ${V?"timed out":"failed"} (${x})`,sq({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:J.message})),this.retryRequest(E,q,g??U);if(SA(this).info(`[${U}] connection ${V?"timed out":"failed"} - error; no more retries left`),SA(this).debug(`[${U}] connection ${V?"timed out":"failed"} (error; no more retries left)`,sq({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:J.message})),V)throw new yE;throw new lg({cause:J})}let _=[...J.headers.entries()].filter(([x])=>x==="request-id").map(([x,V])=>", "+x+": "+JSON.stringify(V)).join(""),T=`[${U}${O}${_}] ${K.method} ${Z} ${J.ok?"succeeded":"failed"} with status ${J.status} in ${$-Y}ms`;if(!J.ok){let x=await this.shouldRetry(J);if(q&&x){let c=`retrying, ${q} attempts remaining`;return await NO(J.body),SA(this).info(`${T} - ${c}`),SA(this).debug(`[${U}] response error (${c})`,sq({retryOfRequestLogID:g,url:J.url,status:J.status,headers:J.headers,durationMs:$-Y})),this.retryRequest(E,q,g??U,J.headers)}let V=x?"error; no more retries left":"error; not retryable";SA(this).info(`${T} - ${V}`);let a=await J.text().catch((c)=>DE(c).message),k=YZ(a),C=k?void 0:a;throw SA(this).debug(`[${U}] response error (${V})`,sq({retryOfRequestLogID:g,url:J.url,status:J.status,headers:J.headers,message:C,durationMs:Date.now()-Y})),this.makeStatusError(J.status,k,C,J.headers)}return SA(this).info(T),SA(this).debug(`[${U}] response start`,sq({retryOfRequestLogID:g,url:J.url,status:J.status,headers:J.headers,durationMs:$-Y})),{response:J,options:E,controller:M,requestLogID:U,retryOfRequestLogID:g,startTime:Y}}getAPIList(A,q,g){return this.requestAPIList(q,{method:"get",path:A,...g})}requestAPIList(A,q){let g=this.makeRequest(q,null,void 0);return new $Z(this,g,A)}async fetchWithTimeout(A,q,g,E){let{signal:F,method:K,...Z}=q||{};if(F)F.addEventListener("abort",()=>E.abort());let j=setTimeout(()=>E.abort(),g),U=globalThis.ReadableStream&&Z.body instanceof globalThis.ReadableStream||typeof Z.body==="object"&&Z.body!==null&&Symbol.asyncIterator in Z.body,O={signal:E.signal,...U?{duplex:"half"}:{},method:"GET",...Z};if(K)O.method=K.toUpperCase();try{return await this.fetch.call(void 0,A,O)}finally{clearTimeout(j)}}async shouldRetry(A){let q=A.headers.get("x-should-retry");if(q==="true")return!0;if(q==="false")return!1;if(A.status===408)return!0;if(A.status===409)return!0;if(A.status===429)return!0;if(A.status>=500)return!0;return!1}async retryRequest(A,q,g,E){let F,K=E?.get("retry-after-ms");if(K){let j=parseFloat(K);if(!Number.isNaN(j))F=j}let Z=E?.get("retry-after");if(Z&&!F){let j=parseFloat(Z);if(!Number.isNaN(j))F=j*1000;else F=Date.parse(Z)-Date.now()}if(!(F&&0<=F&&F<60000)){let j=A.maxRetries??this.maxRetries;F=this.calculateDefaultRetryTimeoutMillis(q,j)}return await _O(F),this.makeRequest(A,q-1,g)}calculateDefaultRetryTimeoutMillis(A,q){let F=q-A,K=Math.min(0.5*Math.pow(2,F),8),Z=1-Math.random()*0.25;return K*Z*1000}calculateNonstreamingTimeout(A,q){if(3600000*A/128000>600000||q!=null&&A>q)throw new l("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#long-requests for more details");return 600000}async buildRequest(A,{retryCount:q=0}={}){let g={...A},{method:E,path:F,query:K,defaultBaseURL:Z}=g,j=this.buildURL(F,K,Z);if("timeout"in g)MO("timeout",g.timeout);g.timeout=g.timeout??this.timeout;let{bodyHeaders:U,body:O}=this.buildBody({options:g}),Y=await this.buildHeaders({options:A,method:E,bodyHeaders:U,retryCount:q});return{req:{method:E,headers:Y,...g.signal&&{signal:g.signal},...globalThis.ReadableStream&&O instanceof globalThis.ReadableStream&&{duplex:"half"},...O&&{body:O},...this.fetchOptions??{},...g.fetchOptions??{}},url:j,timeout:g.timeout}}async buildHeaders({options:A,method:q,bodyHeaders:g,retryCount:E}){let F={};if(this.idempotencyHeader&&q!=="get"){if(!A.idempotencyKey)A.idempotencyKey=this.defaultIdempotencyKey();F[this.idempotencyHeader]=A.idempotencyKey}let K=AA([F,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(E),...A.timeout?{"X-Stainless-Timeout":String(Math.trunc(A.timeout/1000))}:{},...VO(),...this._options.dangerouslyAllowBrowser?{"anthropic-dangerous-direct-browser-access":"true"}:void 0,"anthropic-version":"2023-06-01"},await this.authHeaders(A),this._options.defaultHeaders,g,A.headers]);return this.validateHeaders(K),K.values}buildBody({options:{body:A,headers:q}}){if(!A)return{bodyHeaders:void 0,body:void 0};let g=AA([q]);if(ArrayBuffer.isView(A)||A instanceof ArrayBuffer||A instanceof DataView||typeof A==="string"&&g.values.has("content-type")||globalThis.Blob&&A instanceof globalThis.Blob||A instanceof FormData||A instanceof URLSearchParams||globalThis.ReadableStream&&A instanceof globalThis.ReadableStream)return{bodyHeaders:void 0,body:A};else if(typeof A==="object"&&((Symbol.asyncIterator in A)||(Symbol.iterator in A)&&("next"in A)&&typeof A.next==="function"))return{bodyHeaders:void 0,body:QZ(A)};else return N(this,wZ,"f").call(this,{body:A,headers:g})}}rU=$A,wZ=new WeakMap,nU=new WeakSet,rO=function(){return this.baseURL!=="https://api.anthropic.com"};$A.Anthropic=rU;$A.HUMAN_PROMPT=oO;$A.AI_PROMPT=eO;$A.DEFAULT_TIMEOUT=600000;$A.AnthropicError=l;$A.APIError=NA;$A.APIConnectionError=lg;$A.APIConnectionTimeoutError=yE;$A.APIUserAbortError=DA;$A.NotFoundError=fE;$A.ConflictError=cE;$A.RateLimitError=pE;$A.BadRequestError=bE;$A.AuthenticationError=vE;$A.InternalServerError=uE;$A.PermissionDeniedError=mE;$A.UnprocessableEntityError=dE;$A.toFile=XZ;class Iq extends $A{constructor(){super(...arguments);this.completions=new b6(this),this.messages=new eg(this),this.models=new v6(this),this.beta=new Tq(this)}}Iq.Completions=b6;Iq.Messages=eg;Iq.Models=v6;Iq.Beta=Tq;function i(A,q,g,E,F){if(E==="m")throw TypeError("Private method is not writable");if(E==="a"&&!F)throw TypeError("Private accessor was defined without a setter");if(typeof q==="function"?A!==q||!F:!q.has(A))throw TypeError("Cannot write private member to an object whose class did not declare it");return E==="a"?F.call(A,g):F?F.value=g:q.set(A,g),g}function L(A,q,g,E){if(g==="a"&&!E)throw TypeError("Private accessor was defined without a getter");if(typeof q==="function"?A!==q||!E:!q.has(A))throw TypeError("Cannot read private member from an object whose class did not declare it");return g==="m"?E:g==="a"?E.call(A):E?E.value:q.get(A)}var oU=function(){let{crypto:A}=globalThis;if(A?.randomUUID)return oU=A.randomUUID.bind(A),A.randomUUID();let q=new Uint8Array(1),g=A?()=>A.getRandomValues(q)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(E)=>(+E^g()&15>>+E/4).toString(16))};function NF(A){return typeof A==="object"&&A!==null&&(("name"in A)&&A.name==="AbortError"||("message"in A)&&String(A.message).includes("FetchRequestCanceledException"))}var xF=(A)=>{if(A instanceof Error)return A;if(typeof A==="object"&&A!==null){try{if(Object.prototype.toString.call(A)==="[object Error]"){let q=Error(A.message,A.cause?{cause:A.cause}:{});if(A.stack)q.stack=A.stack;if(A.cause&&!q.cause)q.cause=A.cause;if(A.name)q.name=A.name;return q}}catch{}try{return Error(JSON.stringify(A))}catch{}}return Error(A)};class f extends Error{}class VA extends f{constructor(A,q,g,E){super(`${VA.makeMessage(A,q,g)}`);this.status=A,this.headers=E,this.requestID=E?.get("x-request-id"),this.error=q;let F=q;this.code=F?.code,this.param=F?.param,this.type=F?.type}static makeMessage(A,q,g){let E=q?.message?typeof q.message==="string"?q.message:JSON.stringify(q.message):q?JSON.stringify(q):g;if(A&&E)return`${A} ${E}`;if(A)return`${A} status code (no body)`;if(E)return E;return"(no status code or body)"}static generate(A,q,g,E){if(!A||!E)return new A6({message:g,cause:xF(q)});let F=q?.error;if(A===400)return new TF(A,F,g,E);if(A===401)return new IF(A,F,g,E);if(A===403)return new aF(A,F,g,E);if(A===404)return new PF(A,F,g,E);if(A===409)return new RF(A,F,g,E);if(A===422)return new SF(A,F,g,E);if(A===429)return new hF(A,F,g,E);if(A>=500)return new zF(A,F,g,E);return new VA(A,F,g,E)}}class TA extends VA{constructor({message:A}={}){super(void 0,void 0,A||"Request was aborted.",void 0)}}class A6 extends VA{constructor({message:A,cause:q}){super(void 0,void 0,A||"Connection error.",void 0);if(q)this.cause=q}}class q6 extends A6{constructor({message:A}={}){super({message:A??"Request timed out."})}}class TF extends VA{}class IF extends VA{}class aF extends VA{}class PF extends VA{}class RF extends VA{}class SF extends VA{}class hF extends VA{}class zF extends VA{}class BF extends f{constructor(){super("Could not parse response content as the length limit was reached")}}class wF extends f{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}class eq extends Error{constructor(A){super(A)}}var GX=/^[a-z][a-z0-9+.-]*:/i,AJ=(A)=>{return GX.test(A)},yA=(A)=>(yA=Array.isArray,yA(A)),eU=yA;function AG(A){if(typeof A!=="object")return{};return A??{}}function qJ(A){if(!A)return!0;for(let q in A)return!1;return!0}function gJ(A,q){return Object.prototype.hasOwnProperty.call(A,q)}function CF(A){return A!=null&&typeof A==="object"&&!Array.isArray(A)}var EJ=(A,q)=>{if(typeof q!=="number"||!Number.isInteger(q))throw new f(`${A} must be an integer`);if(q<0)throw new f(`${A} must be a positive integer`);return q};var FJ=(A)=>{try{return JSON.parse(A)}catch(q){return}};var aq=(A)=>new Promise((q)=>setTimeout(q,A));var Lg="6.16.0";var UJ=()=>{return typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u"};function YX(){if(typeof Deno<"u"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime<"u")return"edge";if(Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]")return"node";return"unknown"}var QX=()=>{let A=YX();if(A==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Lg,"X-Stainless-OS":ZJ(Deno.build.os),"X-Stainless-Arch":KJ(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Lg,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(A==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Lg,"X-Stainless-OS":ZJ(globalThis.process.platform??"unknown"),"X-Stainless-Arch":KJ(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let q=OX();if(q)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Lg,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${q.browser}`,"X-Stainless-Runtime-Version":q.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":Lg,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function OX(){if(typeof navigator>"u"||!navigator)return null;let A=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:q,pattern:g}of A){let E=g.exec(navigator.userAgent);if(E){let F=E[1]||0,K=E[2]||0,Z=E[3]||0;return{browser:q,version:`${F}.${K}.${Z}`}}}return null}var KJ=(A)=>{if(A==="x32")return"x32";if(A==="x86_64"||A==="x64")return"x64";if(A==="arm")return"arm";if(A==="aarch64"||A==="arm64")return"arm64";if(A)return`other:${A}`;return"unknown"},ZJ=(A)=>{if(A=A.toLowerCase(),A.includes("ios"))return"iOS";if(A==="android")return"Android";if(A==="darwin")return"MacOS";if(A==="win32")return"Windows";if(A==="freebsd")return"FreeBSD";if(A==="openbsd")return"OpenBSD";if(A==="linux")return"Linux";if(A)return`Other:${A}`;return"Unknown"},jJ,GJ=()=>{return jJ??(jJ=QX())};function YJ(){if(typeof fetch<"u")return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function qG(...A){let q=globalThis.ReadableStream;if(typeof q>"u")throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new q(...A)}function CZ(A){let q=Symbol.asyncIterator in A?A[Symbol.asyncIterator]():A[Symbol.iterator]();return qG({start(){},async pull(g){let{done:E,value:F}=await q.next();if(E)g.close();else g.enqueue(F)},async cancel(){await q.return?.()}})}function gG(A){if(A[Symbol.asyncIterator])return A;let q=A.getReader();return{async next(){try{let g=await q.read();if(g?.done)q.releaseLock();return g}catch(g){throw q.releaseLock(),g}},async return(){let g=q.cancel();return q.releaseLock(),await g,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function QJ(A){if(A===null||typeof A!=="object")return;if(A[Symbol.asyncIterator]){await A[Symbol.asyncIterator]().return?.();return}let q=A.getReader(),g=q.cancel();q.releaseLock(),await g}var OJ=({headers:A,body:q})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(q)}};var kZ="RFC3986",EG=(A)=>String(A),DZ={RFC1738:(A)=>String(A).replace(/%20/g,"+"),RFC3986:EG},FG="RFC1738";var yZ=(A,q)=>(yZ=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),yZ(A,q)),Pq=(()=>{let A=[];for(let q=0;q<256;++q)A.push("%"+((q<16?"0":"")+q.toString(16)).toUpperCase());return A})();var KG=1024,JJ=(A,q,g,E,F)=>{if(A.length===0)return A;let K=A;if(typeof A==="symbol")K=Symbol.prototype.toString.call(A);else if(typeof A!=="string")K=String(A);if(g==="iso-8859-1")return escape(K).replace(/%u[0-9a-f]{4}/gi,function(j){return"%26%23"+parseInt(j.slice(2),16)+"%3B"});let Z="";for(let j=0;j<K.length;j+=KG){let U=K.length>=KG?K.slice(j,j+KG):K,O=[];for(let Y=0;Y<U.length;++Y){let M=U.charCodeAt(Y);if(M===45||M===46||M===95||M===126||M>=48&&M<=57||M>=65&&M<=90||M>=97&&M<=122||F===FG&&(M===40||M===41)){O[O.length]=U.charAt(Y);continue}if(M<128){O[O.length]=Pq[M];continue}if(M<2048){O[O.length]=Pq[192|M>>6]+Pq[128|M&63];continue}if(M<55296||M>=57344){O[O.length]=Pq[224|M>>12]+Pq[128|M>>6&63]+Pq[128|M&63];continue}Y+=1,M=65536+((M&1023)<<10|U.charCodeAt(Y)&1023),O[O.length]=Pq[240|M>>18]+Pq[128|M>>12&63]+Pq[128|M>>6&63]+Pq[128|M&63]}Z+=O.join("")}return Z};function MJ(A){if(!A||typeof A!=="object")return!1;return!!(A.constructor&&A.constructor.isBuffer&&A.constructor.isBuffer(A))}function ZG(A,q){if(yA(A)){let g=[];for(let E=0;E<A.length;E+=1)g.push(q(A[E]));return g}return q(A)}var $J={brackets(A){return String(A)+"[]"},comma:"comma",indices(A,q){return String(A)+"["+q+"]"},repeat(A){return String(A)}},XJ=function(A,q){Array.prototype.push.apply(A,yA(q)?q:[q])},_J,IA={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:JJ,encodeValuesOnly:!1,format:kZ,formatter:EG,indices:!1,serializeDate(A){return(_J??(_J=Function.prototype.call.bind(Date.prototype.toISOString)))(A)},skipNulls:!1,strictNullHandling:!1};function _X(A){return typeof A==="string"||typeof A==="number"||typeof A==="boolean"||typeof A==="symbol"||typeof A==="bigint"}var jG={};function HJ(A,q,g,E,F,K,Z,j,U,O,Y,M,J,$,_,T,x,V){let a=A,k=V,C=0,u=!1;while((k=k.get(jG))!==void 0&&!u){let m=k.get(A);if(C+=1,typeof m<"u")if(m===C)throw RangeError("Cyclic object value");else u=!0;if(typeof k.get(jG)>"u")C=0}if(typeof O==="function")a=O(q,a);else if(a instanceof Date)a=J?.(a);else if(g==="comma"&&yA(a))a=ZG(a,function(m){if(m instanceof Date)return J?.(m);return m});if(a===null){if(K)return U&&!T?U(q,IA.encoder,x,"key",$):q;a=""}if(_X(a)||MJ(a)){if(U){let m=T?q:U(q,IA.encoder,x,"key",$);return[_?.(m)+"="+_?.(U(a,IA.encoder,x,"value",$))]}return[_?.(q)+"="+_?.(String(a))]}let c=[];if(typeof a>"u")return c;let R;if(g==="comma"&&yA(a)){if(T&&U)a=ZG(a,U);R=[{value:a.length>0?a.join(",")||null:void 0}]}else if(yA(O))R=O;else{let m=Object.keys(a);R=Y?m.sort(Y):m}let z=j?String(q).replace(/\./g,"%2E"):String(q),n=E&&yA(a)&&a.length===1?z+"[]":z;if(F&&yA(a)&&a.length===0)return n+"[]";for(let m=0;m<R.length;++m){let gA=R[m],FA=typeof gA==="object"&&typeof gA.value<"u"?gA.value:a[gA];if(Z&&FA===null)continue;let YA=M&&j?gA.replace(/\./g,"%2E"):gA,PA=yA(a)?typeof g==="function"?g(n,YA):n:n+(M?"."+YA:"["+YA+"]");V.set(A,C);let bA=new WeakMap;bA.set(jG,V),XJ(c,HJ(FA,PA,g,E,F,K,Z,j,g==="comma"&&T&&yA(a)?null:U,O,Y,M,J,$,_,T,x,bA))}return c}function $X(A=IA){if(typeof A.allowEmptyArrays<"u"&&typeof A.allowEmptyArrays!=="boolean")throw TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof A.encodeDotInKeys<"u"&&typeof A.encodeDotInKeys!=="boolean")throw TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(A.encoder!==null&&typeof A.encoder<"u"&&typeof A.encoder!=="function")throw TypeError("Encoder has to be a function.");let q=A.charset||IA.charset;if(typeof A.charset<"u"&&A.charset!=="utf-8"&&A.charset!=="iso-8859-1")throw TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let g=kZ;if(typeof A.format<"u"){if(!yZ(DZ,A.format))throw TypeError("Unknown format option provided.");g=A.format}let E=DZ[g],F=IA.filter;if(typeof A.filter==="function"||yA(A.filter))F=A.filter;let K;if(A.arrayFormat&&A.arrayFormat in $J)K=A.arrayFormat;else if("indices"in A)K=A.indices?"indices":"repeat";else K=IA.arrayFormat;if("commaRoundTrip"in A&&typeof A.commaRoundTrip!=="boolean")throw TypeError("`commaRoundTrip` must be a boolean, or absent");let Z=typeof A.allowDots>"u"?!!A.encodeDotInKeys===!0?!0:IA.allowDots:!!A.allowDots;return{addQueryPrefix:typeof A.addQueryPrefix==="boolean"?A.addQueryPrefix:IA.addQueryPrefix,allowDots:Z,allowEmptyArrays:typeof A.allowEmptyArrays==="boolean"?!!A.allowEmptyArrays:IA.allowEmptyArrays,arrayFormat:K,charset:q,charsetSentinel:typeof A.charsetSentinel==="boolean"?A.charsetSentinel:IA.charsetSentinel,commaRoundTrip:!!A.commaRoundTrip,delimiter:typeof A.delimiter>"u"?IA.delimiter:A.delimiter,encode:typeof A.encode==="boolean"?A.encode:IA.encode,encodeDotInKeys:typeof A.encodeDotInKeys==="boolean"?A.encodeDotInKeys:IA.encodeDotInKeys,encoder:typeof A.encoder==="function"?A.encoder:IA.encoder,encodeValuesOnly:typeof A.encodeValuesOnly==="boolean"?A.encodeValuesOnly:IA.encodeValuesOnly,filter:F,format:g,formatter:E,serializeDate:typeof A.serializeDate==="function"?A.serializeDate:IA.serializeDate,skipNulls:typeof A.skipNulls==="boolean"?A.skipNulls:IA.skipNulls,sort:typeof A.sort==="function"?A.sort:null,strictNullHandling:typeof A.strictNullHandling==="boolean"?A.strictNullHandling:IA.strictNullHandling}}function UG(A,q={}){let g=A,E=$X(q),F,K;if(typeof E.filter==="function")K=E.filter,g=K("",g);else if(yA(E.filter))K=E.filter,F=K;let Z=[];if(typeof g!=="object"||g===null)return"";let j=$J[E.arrayFormat],U=j==="comma"&&E.commaRoundTrip;if(!F)F=Object.keys(g);if(E.sort)F.sort(E.sort);let O=new WeakMap;for(let J=0;J<F.length;++J){let $=F[J];if(E.skipNulls&&g[$]===null)continue;XJ(Z,HJ(g[$],$,j,U,E.allowEmptyArrays,E.strictNullHandling,E.skipNulls,E.encodeDotInKeys,E.encode?E.encoder:null,E.filter,E.sort,E.allowDots,E.serializeDate,E.format,E.formatter,E.encodeValuesOnly,E.charset,O))}let Y=Z.join(E.delimiter),M=E.addQueryPrefix===!0?"?":"";if(E.charsetSentinel)if(E.charset==="iso-8859-1")M+="utf8=%26%2310003%3B&";else M+="utf8=%E2%9C%93&";return Y.length>0?M+Y:""}function WJ(A){let q=0;for(let F of A)q+=F.length;let g=new Uint8Array(q),E=0;for(let F of A)g.set(F,E),E+=F.length;return g}var LJ;function m6(A){let q;return(LJ??(q=new globalThis.TextEncoder,LJ=q.encode.bind(q)))(A)}var VJ;function GG(A){let q;return(VJ??(q=new globalThis.TextDecoder,VJ=q.decode.bind(q)))(A)}var sA,nA;class f6{constructor(){sA.set(this,void 0),nA.set(this,void 0),i(this,sA,new Uint8Array,"f"),i(this,nA,null,"f")}decode(A){if(A==null)return[];let q=A instanceof ArrayBuffer?new Uint8Array(A):typeof A==="string"?m6(A):A;i(this,sA,WJ([L(this,sA,"f"),q]),"f");let g=[],E;while((E=HX(L(this,sA,"f"),L(this,nA,"f")))!=null){if(E.carriage&&L(this,nA,"f")==null){i(this,nA,E.index,"f");continue}if(L(this,nA,"f")!=null&&(E.index!==L(this,nA,"f")+1||E.carriage)){g.push(GG(L(this,sA,"f").subarray(0,L(this,nA,"f")-1))),i(this,sA,L(this,sA,"f").subarray(L(this,nA,"f")),"f"),i(this,nA,null,"f");continue}let F=L(this,nA,"f")!==null?E.preceding-1:E.preceding,K=GG(L(this,sA,"f").subarray(0,F));g.push(K),i(this,sA,L(this,sA,"f").subarray(E.index),"f"),i(this,nA,null,"f")}return g}flush(){if(!L(this,sA,"f").length)return[];return this.decode(`
|
|
132
|
-
`)}}
|
|
133
|
-
`,"\r"]);
|
|
134
|
-
`);g.enqueue(K)}catch(E){g.error(E)}},async cancel(){await q.return?.()}})}}async function*
|
|
135
|
-
`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],F}if(this.chunks.push(A),A.startsWith(":"))return null;let[q,g,E]=
|
|
136
|
-
${K.map((
|
|
140
|
+
`);this.baseURL=F.baseURL,this.timeout=F.timeout??aG.DEFAULT_TIMEOUT,this.logger=F.logger??console;let K="warn";this.logLevel=K,this.logLevel=GG(F.logLevel,"ClientOptions.logLevel",this)??GG(yF("ANTHROPIC_LOG"),"process.env['ANTHROPIC_LOG']",this)??K,this.fetchOptions=F.fetchOptions,this.maxRetries=F.maxRetries??2,this.fetch=F.fetch??nJ(),f(this,oZ,oJ,"f"),this._options=F,this.apiKey=typeof q==="string"?q:null,this.authToken=g}withOptions(A){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,authToken:this.authToken,...A})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:A,nulls:q}){if(A.get("x-api-key")||A.get("authorization"))return;if(this.apiKey&&A.get("x-api-key"))return;if(q.has("x-api-key"))return;if(this.authToken&&A.get("authorization"))return;if(q.has("authorization"))return;throw new Error('Could not resolve authentication method. Expected either apiKey or authToken to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted')}async authHeaders(A){return AA([await this.apiKeyAuth(A),await this.bearerAuth(A)])}async apiKeyAuth(A){if(this.apiKey==null)return;return AA([{"X-Api-Key":this.apiKey}])}async bearerAuth(A){if(this.authToken==null)return;return AA([{Authorization:`Bearer ${this.authToken}`}])}stringifyQuery(A){return Object.entries(A).filter(([q,g])=>typeof g!=="undefined").map(([q,g])=>{if(typeof g==="string"||typeof g==="number"||typeof g==="boolean")return`${encodeURIComponent(q)}=${encodeURIComponent(g)}`;if(g===null)return`${encodeURIComponent(q)}=`;throw new t(`Cannot stringify type ${typeof g}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`)}).join("&")}getUserAgent(){return`${this.constructor.name}/JS ${Ig}`}defaultIdempotencyKey(){return`stainless-node-retry-${FG()}`}makeStatusError(A,q,g,E){return NA.generate(A,q,g,E)}buildURL(A,q,g){let E=!T(this,SG,"m",PM).call(this)&&g||this.baseURL,F=mJ(A)?new URL(A):new URL(E+(E.endsWith("/")&&A.startsWith("/")?A.slice(1):A)),K=this.defaultQuery();if(!fJ(K))q={...K,...q};if(typeof q==="object"&&q&&!Array.isArray(q))F.search=this.stringifyQuery(q);return F.toString()}_calculateNonstreamingTimeout(A){if(3600*A/128000>600)throw new t("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#streaming-responses for more details");return 600000}async prepareOptions(A){}async prepareRequest(A,{url:q,options:g}){}get(A,q){return this.methodRequest("get",A,q)}post(A,q){return this.methodRequest("post",A,q)}patch(A,q){return this.methodRequest("patch",A,q)}put(A,q){return this.methodRequest("put",A,q)}delete(A,q){return this.methodRequest("delete",A,q)}methodRequest(A,q,g){return this.request(Promise.resolve(g).then((E)=>{return{method:A,path:q,...E}}))}request(A,q=null){return new F6(this,this.makeRequest(A,q,void 0))}async makeRequest(A,q,g){let E=await A,F=E.maxRetries??this.maxRetries;if(q==null)q=F;await this.prepareOptions(E);let{req:K,url:Z,timeout:j}=await this.buildRequest(E,{retryCount:F-q});await this.prepareRequest(K,{url:Z,options:E});let U="log_"+(Math.random()*16777216|0).toString(16).padStart(6,"0"),G=g===void 0?"":`, retryOf: ${g}`,Y=Date.now();if(hA(this).debug(`[${U}] sending request`,eq({retryOfRequestLogID:g,method:E.method,url:Z,options:E,headers:K.headers})),E.signal?.aborted)throw new bA;let M=new AbortController,O=await this.fetchWithTimeout(Z,K,j,M).catch(oE),$=Date.now();if(O instanceof globalThis.Error){let N=`retrying, ${q} attempts remaining`;if(E.signal?.aborted)throw new bA;let L=oq(O)||/timed? ?out/i.test(String(O)+("cause"in O?String(O.cause):""));if(q)return hA(this).info(`[${U}] connection ${L?"timed out":"failed"} - ${N}`),hA(this).debug(`[${U}] connection ${L?"timed out":"failed"} (${N})`,eq({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:O.message})),this.retryRequest(E,q,g??U);if(hA(this).info(`[${U}] connection ${L?"timed out":"failed"} - error; no more retries left`),hA(this).debug(`[${U}] connection ${L?"timed out":"failed"} (error; no more retries left)`,eq({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:O.message})),L)throw new eE;throw new E6({cause:O})}let _=[...O.headers.entries()].filter(([N])=>N==="request-id").map(([N,L])=>", "+N+": "+JSON.stringify(L)).join(""),x=`[${U}${G}${_}] ${K.method} ${Z} ${O.ok?"succeeded":"failed"} with status ${O.status} in ${$-Y}ms`;if(!O.ok){let N=await this.shouldRetry(O);if(q&&N){let p=`retrying, ${q} attempts remaining`;return await rJ(O.body),hA(this).info(`${x} - ${p}`),hA(this).debug(`[${U}] response error (${p})`,eq({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,durationMs:$-Y})),this.retryRequest(E,q,g??U,O.headers)}let L=N?"error; no more retries left":"error; not retryable";hA(this).info(`${x} - ${L}`);let P=await O.text().catch((p)=>oE(p).message),k=aZ(P),C=k?void 0:P;throw hA(this).debug(`[${U}] response error (${L})`,eq({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,message:C,durationMs:Date.now()-Y})),this.makeStatusError(O.status,k,C,O.headers)}return hA(this).info(x),hA(this).debug(`[${U}] response start`,eq({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,durationMs:$-Y})),{response:O,options:E,controller:M,requestLogID:U,retryOfRequestLogID:g,startTime:Y}}getAPIList(A,q,g){return this.requestAPIList(q,{method:"get",path:A,...g})}requestAPIList(A,q){let g=this.makeRequest(q,null,void 0);return new kZ(this,g,A)}async fetchWithTimeout(A,q,g,E){let{signal:F,method:K,...Z}=q||{};if(F)F.addEventListener("abort",()=>E.abort());let j=setTimeout(()=>E.abort(),g),U=globalThis.ReadableStream&&Z.body instanceof globalThis.ReadableStream||typeof Z.body==="object"&&Z.body!==null&&Symbol.asyncIterator in Z.body,G={signal:E.signal,...U?{duplex:"half"}:{},method:"GET",...Z};if(K)G.method=K.toUpperCase();try{return await this.fetch.call(void 0,A,G)}finally{clearTimeout(j)}}async shouldRetry(A){let q=A.headers.get("x-should-retry");if(q==="true")return!0;if(q==="false")return!1;if(A.status===408)return!0;if(A.status===409)return!0;if(A.status===429)return!0;if(A.status>=500)return!0;return!1}async retryRequest(A,q,g,E){let F,K=E?.get("retry-after-ms");if(K){let j=parseFloat(K);if(!Number.isNaN(j))F=j}let Z=E?.get("retry-after");if(Z&&!F){let j=parseFloat(Z);if(!Number.isNaN(j))F=j*1000;else F=Date.parse(Z)-Date.now()}if(!(F&&0<=F&&F<60000)){let j=A.maxRetries??this.maxRetries;F=this.calculateDefaultRetryTimeoutMillis(q,j)}return await pJ(F),this.makeRequest(A,q-1,g)}calculateDefaultRetryTimeoutMillis(A,q){let F=q-A,K=Math.min(0.5*Math.pow(2,F),8),Z=1-Math.random()*0.25;return K*Z*1000}calculateNonstreamingTimeout(A,q){if(3600000*A/128000>600000||q!=null&&A>q)throw new t("Streaming is required for operations that may take longer than 10 minutes. See https://github.com/anthropics/anthropic-sdk-typescript#long-requests for more details");return 600000}async buildRequest(A,{retryCount:q=0}={}){let g={...A},{method:E,path:F,query:K,defaultBaseURL:Z}=g,j=this.buildURL(F,K,Z);if("timeout"in g)dJ("timeout",g.timeout);g.timeout=g.timeout??this.timeout;let{bodyHeaders:U,body:G}=this.buildBody({options:g}),Y=await this.buildHeaders({options:A,method:E,bodyHeaders:U,retryCount:q});return{req:{method:E,headers:Y,...g.signal&&{signal:g.signal},...globalThis.ReadableStream&&G instanceof globalThis.ReadableStream&&{duplex:"half"},...G&&{body:G},...this.fetchOptions??{},...g.fetchOptions??{}},url:j,timeout:g.timeout}}async buildHeaders({options:A,method:q,bodyHeaders:g,retryCount:E}){let F={};if(this.idempotencyHeader&&q!=="get"){if(!A.idempotencyKey)A.idempotencyKey=this.defaultIdempotencyKey();F[this.idempotencyHeader]=A.idempotencyKey}let K=AA([F,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(E),...A.timeout?{"X-Stainless-Timeout":String(Math.trunc(A.timeout/1000))}:{},...sJ(),...this._options.dangerouslyAllowBrowser?{"anthropic-dangerous-direct-browser-access":"true"}:void 0,"anthropic-version":"2023-06-01"},await this.authHeaders(A),this._options.defaultHeaders,g,A.headers]);return this.validateHeaders(K),K.values}buildBody({options:{body:A,headers:q}}){if(!A)return{bodyHeaders:void 0,body:void 0};let g=AA([q]);if(ArrayBuffer.isView(A)||A instanceof ArrayBuffer||A instanceof DataView||typeof A==="string"&&g.values.has("content-type")||globalThis.Blob&&A instanceof globalThis.Blob||A instanceof FormData||A instanceof URLSearchParams||globalThis.ReadableStream&&A instanceof globalThis.ReadableStream)return{bodyHeaders:void 0,body:A};else if(typeof A==="object"&&((Symbol.asyncIterator in A)||(Symbol.iterator in A)&&("next"in A)&&typeof A.next==="function"))return{bodyHeaders:void 0,body:hZ(A)};else return T(this,oZ,"f").call(this,{body:A,headers:g})}}aG=$A,oZ=new WeakMap,SG=new WeakSet,PM=function A(){return this.baseURL!=="https://api.anthropic.com"};$A.Anthropic=aG;$A.HUMAN_PROMPT=RM;$A.AI_PROMPT=SM;$A.DEFAULT_TIMEOUT=600000;$A.AnthropicError=t;$A.APIError=NA;$A.APIConnectionError=E6;$A.APIConnectionTimeoutError=eE;$A.APIUserAbortError=bA;$A.NotFoundError=EF;$A.ConflictError=FF;$A.RateLimitError=ZF;$A.BadRequestError=AF;$A.AuthenticationError=qF;$A.InternalServerError=jF;$A.PermissionDeniedError=gF;$A.UnprocessableEntityError=KF;$A.toFile=DZ;class oA extends $A{constructor(){super(...arguments);this.completions=new n6(this),this.messages=new Y6(this),this.models=new r6(this),this.beta=new aq(this)}}oA.Completions=n6;oA.Messages=Y6;oA.Models=r6;oA.Beta=aq;function s(A,q,g,E,F){if(E==="m")throw new TypeError("Private method is not writable");if(E==="a"&&!F)throw new TypeError("Private accessor was defined without a setter");if(typeof q==="function"?A!==q||!F:!q.has(A))throw new TypeError("Cannot write private member to an object whose class did not declare it");return E==="a"?F.call(A,g):F?F.value=g:q.set(A,g),g}function V(A,q,g,E){if(g==="a"&&!E)throw new TypeError("Private accessor was defined without a getter");if(typeof q==="function"?A!==q||!E:!q.has(A))throw new TypeError("Cannot read private member from an object whose class did not declare it");return g==="m"?E:g==="a"?E.call(A):E?E.value:q.get(A)}var hG=function(){let{crypto:A}=globalThis;if(A?.randomUUID)return hG=A.randomUUID.bind(A),A.randomUUID();let q=new Uint8Array(1),g=A?()=>A.getRandomValues(q)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(E)=>(+E^g()&15>>+E/4).toString(16))};function bF(A){return typeof A==="object"&&A!==null&&(("name"in A)&&A.name==="AbortError"||("message"in A)&&String(A.message).includes("FetchRequestCanceledException"))}var vF=(A)=>{if(A instanceof Error)return A;if(typeof A==="object"&&A!==null){try{if(Object.prototype.toString.call(A)==="[object Error]"){let q=new Error(A.message,A.cause?{cause:A.cause}:{});if(A.stack)q.stack=A.stack;if(A.cause&&!q.cause)q.cause=A.cause;if(A.name)q.name=A.name;return q}}catch{}try{return new Error(JSON.stringify(A))}catch{}}return new Error(A)};class d extends Error{}class VA extends d{constructor(A,q,g,E){super(`${VA.makeMessage(A,q,g)}`);this.status=A,this.headers=E,this.requestID=E?.get("x-request-id"),this.error=q;let F=q;this.code=F?.code,this.param=F?.param,this.type=F?.type}static makeMessage(A,q,g){let E=q?.message?typeof q.message==="string"?q.message:JSON.stringify(q.message):q?JSON.stringify(q):g;if(A&&E)return`${A} ${E}`;if(A)return`${A} status code (no body)`;if(E)return E;return"(no status code or body)"}static generate(A,q,g,E){if(!A||!E)return new Q6({message:g,cause:vF(q)});let F=q?.error;if(A===400)return new mF(A,F,g,E);if(A===401)return new fF(A,F,g,E);if(A===403)return new cF(A,F,g,E);if(A===404)return new dF(A,F,g,E);if(A===409)return new pF(A,F,g,E);if(A===422)return new uF(A,F,g,E);if(A===429)return new lF(A,F,g,E);if(A>=500)return new iF(A,F,g,E);return new VA(A,F,g,E)}}class IA extends VA{constructor({message:A}={}){super(void 0,void 0,A||"Request was aborted.",void 0)}}class Q6 extends VA{constructor({message:A,cause:q}){super(void 0,void 0,A||"Connection error.",void 0);if(q)this.cause=q}}class O6 extends Q6{constructor({message:A}={}){super({message:A??"Request timed out."})}}class mF extends VA{}class fF extends VA{}class cF extends VA{}class dF extends VA{}class pF extends VA{}class uF extends VA{}class lF extends VA{}class iF extends VA{}class tF extends d{constructor(){super("Could not parse response content as the length limit was reached")}}class sF extends d{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}class Eg extends Error{constructor(A){super(A)}}var UH=/^[a-z][a-z0-9+.-]*:/i,aM=(A)=>{return UH.test(A)},vA=(A)=>(vA=Array.isArray,vA(A)),zG=vA;function BG(A){if(typeof A!=="object")return{};return A??{}}function hM(A){if(!A)return!0;for(let q in A)return!1;return!0}function zM(A,q){return Object.prototype.hasOwnProperty.call(A,q)}function nF(A){return A!=null&&typeof A==="object"&&!Array.isArray(A)}var BM=(A,q)=>{if(typeof q!=="number"||!Number.isInteger(q))throw new d(`${A} must be an integer`);if(q<0)throw new d(`${A} must be a positive integer`);return q};var wM=(A)=>{try{return JSON.parse(A)}catch(q){return}};var hq=(A)=>new Promise((q)=>setTimeout(q,A));var ag="6.16.0";var yM=()=>{return typeof window!=="undefined"&&typeof window.document!=="undefined"&&typeof navigator!=="undefined"};function GH(){if(typeof Deno!=="undefined"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime!=="undefined")return"edge";if(Object.prototype.toString.call(typeof globalThis.process!=="undefined"?globalThis.process:0)==="[object process]")return"node";return"unknown"}var YH=()=>{let A=GH();if(A==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ag,"X-Stainless-OS":kM(Deno.build.os),"X-Stainless-Arch":CM(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime!=="undefined")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ag,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(A==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ag,"X-Stainless-OS":kM(globalThis.process.platform??"unknown"),"X-Stainless-Arch":CM(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let q=QH();if(q)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ag,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${q.browser}`,"X-Stainless-Runtime-Version":q.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":ag,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function QH(){if(typeof navigator==="undefined"||!navigator)return null;let A=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:q,pattern:g}of A){let E=g.exec(navigator.userAgent);if(E){let F=E[1]||0,K=E[2]||0,Z=E[3]||0;return{browser:q,version:`${F}.${K}.${Z}`}}}return null}var CM=(A)=>{if(A==="x32")return"x32";if(A==="x86_64"||A==="x64")return"x64";if(A==="arm")return"arm";if(A==="aarch64"||A==="arm64")return"arm64";if(A)return`other:${A}`;return"unknown"},kM=(A)=>{if(A=A.toLowerCase(),A.includes("ios"))return"iOS";if(A==="android")return"Android";if(A==="darwin")return"MacOS";if(A==="win32")return"Windows";if(A==="freebsd")return"FreeBSD";if(A==="openbsd")return"OpenBSD";if(A==="linux")return"Linux";if(A)return`Other:${A}`;return"Unknown"},DM,bM=()=>{return DM??(DM=YH())};function vM(){if(typeof fetch!=="undefined")return fetch;throw new Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function wG(...A){let q=globalThis.ReadableStream;if(typeof q==="undefined")throw new Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new q(...A)}function eZ(A){let q=Symbol.asyncIterator in A?A[Symbol.asyncIterator]():A[Symbol.iterator]();return wG({start(){},async pull(g){let{done:E,value:F}=await q.next();if(E)g.close();else g.enqueue(F)},async cancel(){await q.return?.()}})}function CG(A){if(A[Symbol.asyncIterator])return A;let q=A.getReader();return{async next(){try{let g=await q.read();if(g?.done)q.releaseLock();return g}catch(g){throw q.releaseLock(),g}},async return(){let g=q.cancel();return q.releaseLock(),await g,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function mM(A){if(A===null||typeof A!=="object")return;if(A[Symbol.asyncIterator]){await A[Symbol.asyncIterator]().return?.();return}let q=A.getReader(),g=q.cancel();q.releaseLock(),await g}var fM=({headers:A,body:q})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(q)}};var Aj="RFC3986",kG=(A)=>String(A),qj={RFC1738:(A)=>String(A).replace(/%20/g,"+"),RFC3986:kG},DG="RFC1738";var gj=(A,q)=>(gj=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),gj(A,q)),zq=(()=>{let A=[];for(let q=0;q<256;++q)A.push("%"+((q<16?"0":"")+q.toString(16)).toUpperCase());return A})();var yG=1024,cM=(A,q,g,E,F)=>{if(A.length===0)return A;let K=A;if(typeof A==="symbol")K=Symbol.prototype.toString.call(A);else if(typeof A!=="string")K=String(A);if(g==="iso-8859-1")return escape(K).replace(/%u[0-9a-f]{4}/gi,function(j){return"%26%23"+parseInt(j.slice(2),16)+"%3B"});let Z="";for(let j=0;j<K.length;j+=yG){let U=K.length>=yG?K.slice(j,j+yG):K,G=[];for(let Y=0;Y<U.length;++Y){let M=U.charCodeAt(Y);if(M===45||M===46||M===95||M===126||M>=48&&M<=57||M>=65&&M<=90||M>=97&&M<=122||F===DG&&(M===40||M===41)){G[G.length]=U.charAt(Y);continue}if(M<128){G[G.length]=zq[M];continue}if(M<2048){G[G.length]=zq[192|M>>6]+zq[128|M&63];continue}if(M<55296||M>=57344){G[G.length]=zq[224|M>>12]+zq[128|M>>6&63]+zq[128|M&63];continue}Y+=1,M=65536+((M&1023)<<10|U.charCodeAt(Y)&1023),G[G.length]=zq[240|M>>18]+zq[128|M>>12&63]+zq[128|M>>6&63]+zq[128|M&63]}Z+=G.join("")}return Z};function dM(A){if(!A||typeof A!=="object")return!1;return!!(A.constructor&&A.constructor.isBuffer&&A.constructor.isBuffer(A))}function bG(A,q){if(vA(A)){let g=[];for(let E=0;E<A.length;E+=1)g.push(q(A[E]));return g}return q(A)}var uM={brackets(A){return String(A)+"[]"},comma:"comma",indices(A,q){return String(A)+"["+q+"]"},repeat(A){return String(A)}},lM=function(A,q){Array.prototype.push.apply(A,vA(q)?q:[q])},pM,xA={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:cM,encodeValuesOnly:!1,format:Aj,formatter:kG,indices:!1,serializeDate(A){return(pM??(pM=Function.prototype.call.bind(Date.prototype.toISOString)))(A)},skipNulls:!1,strictNullHandling:!1};function MH(A){return typeof A==="string"||typeof A==="number"||typeof A==="boolean"||typeof A==="symbol"||typeof A==="bigint"}var vG={};function iM(A,q,g,E,F,K,Z,j,U,G,Y,M,O,$,_,x,N,L){let P=A,k=L,C=0,i=!1;while((k=k.get(vG))!==void 0&&!i){let c=k.get(A);if(C+=1,typeof c!=="undefined")if(c===C)throw new RangeError("Cyclic object value");else i=!0;if(typeof k.get(vG)==="undefined")C=0}if(typeof G==="function")P=G(q,P);else if(P instanceof Date)P=O?.(P);else if(g==="comma"&&vA(P))P=bG(P,function(c){if(c instanceof Date)return O?.(c);return c});if(P===null){if(K)return U&&!x?U(q,xA.encoder,N,"key",$):q;P=""}if(MH(P)||dM(P)){if(U){let c=x?q:U(q,xA.encoder,N,"key",$);return[_?.(c)+"="+_?.(U(P,xA.encoder,N,"value",$))]}return[_?.(q)+"="+_?.(String(P))]}let p=[];if(typeof P==="undefined")return p;let a;if(g==="comma"&&vA(P)){if(x&&U)P=bG(P,U);a=[{value:P.length>0?P.join(",")||null:void 0}]}else if(vA(G))a=G;else{let c=Object.keys(P);a=Y?c.sort(Y):c}let z=j?String(q).replace(/\./g,"%2E"):String(q),r=E&&vA(P)&&P.length===1?z+"[]":z;if(F&&vA(P)&&P.length===0)return r+"[]";for(let c=0;c<a.length;++c){let gA=a[c],KA=typeof gA==="object"&&typeof gA.value!=="undefined"?gA.value:P[gA];if(Z&&KA===null)continue;let QA=M&&j?gA.replace(/\./g,"%2E"):gA,RA=vA(P)?typeof g==="function"?g(r,QA):r:r+(M?"."+QA:"["+QA+"]");L.set(A,C);let mA=new WeakMap;mA.set(vG,L),lM(p,iM(KA,RA,g,E,F,K,Z,j,g==="comma"&&x&&vA(P)?null:U,G,Y,M,O,$,_,x,N,mA))}return p}function _H(A=xA){if(typeof A.allowEmptyArrays!=="undefined"&&typeof A.allowEmptyArrays!=="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof A.encodeDotInKeys!=="undefined"&&typeof A.encodeDotInKeys!=="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(A.encoder!==null&&typeof A.encoder!=="undefined"&&typeof A.encoder!=="function")throw new TypeError("Encoder has to be a function.");let q=A.charset||xA.charset;if(typeof A.charset!=="undefined"&&A.charset!=="utf-8"&&A.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let g=Aj;if(typeof A.format!=="undefined"){if(!gj(qj,A.format))throw new TypeError("Unknown format option provided.");g=A.format}let E=qj[g],F=xA.filter;if(typeof A.filter==="function"||vA(A.filter))F=A.filter;let K;if(A.arrayFormat&&A.arrayFormat in uM)K=A.arrayFormat;else if("indices"in A)K=A.indices?"indices":"repeat";else K=xA.arrayFormat;if("commaRoundTrip"in A&&typeof A.commaRoundTrip!=="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");let Z=typeof A.allowDots==="undefined"?!!A.encodeDotInKeys===!0?!0:xA.allowDots:!!A.allowDots;return{addQueryPrefix:typeof A.addQueryPrefix==="boolean"?A.addQueryPrefix:xA.addQueryPrefix,allowDots:Z,allowEmptyArrays:typeof A.allowEmptyArrays==="boolean"?!!A.allowEmptyArrays:xA.allowEmptyArrays,arrayFormat:K,charset:q,charsetSentinel:typeof A.charsetSentinel==="boolean"?A.charsetSentinel:xA.charsetSentinel,commaRoundTrip:!!A.commaRoundTrip,delimiter:typeof A.delimiter==="undefined"?xA.delimiter:A.delimiter,encode:typeof A.encode==="boolean"?A.encode:xA.encode,encodeDotInKeys:typeof A.encodeDotInKeys==="boolean"?A.encodeDotInKeys:xA.encodeDotInKeys,encoder:typeof A.encoder==="function"?A.encoder:xA.encoder,encodeValuesOnly:typeof A.encodeValuesOnly==="boolean"?A.encodeValuesOnly:xA.encodeValuesOnly,filter:F,format:g,formatter:E,serializeDate:typeof A.serializeDate==="function"?A.serializeDate:xA.serializeDate,skipNulls:typeof A.skipNulls==="boolean"?A.skipNulls:xA.skipNulls,sort:typeof A.sort==="function"?A.sort:null,strictNullHandling:typeof A.strictNullHandling==="boolean"?A.strictNullHandling:xA.strictNullHandling}}function mG(A,q={}){let g=A,E=_H(q),F,K;if(typeof E.filter==="function")K=E.filter,g=K("",g);else if(vA(E.filter))K=E.filter,F=K;let Z=[];if(typeof g!=="object"||g===null)return"";let j=uM[E.arrayFormat],U=j==="comma"&&E.commaRoundTrip;if(!F)F=Object.keys(g);if(E.sort)F.sort(E.sort);let G=new WeakMap;for(let O=0;O<F.length;++O){let $=F[O];if(E.skipNulls&&g[$]===null)continue;lM(Z,iM(g[$],$,j,U,E.allowEmptyArrays,E.strictNullHandling,E.skipNulls,E.encodeDotInKeys,E.encode?E.encoder:null,E.filter,E.sort,E.allowDots,E.serializeDate,E.format,E.formatter,E.encodeValuesOnly,E.charset,G))}let Y=Z.join(E.delimiter),M=E.addQueryPrefix===!0?"?":"";if(E.charsetSentinel)if(E.charset==="iso-8859-1")M+="utf8=%26%2310003%3B&";else M+="utf8=%E2%9C%93&";return Y.length>0?M+Y:""}function nM(A){let q=0;for(let F of A)q+=F.length;let g=new Uint8Array(q),E=0;for(let F of A)g.set(F,E),E+=F.length;return g}var tM;function o6(A){let q;return(tM??(q=new globalThis.TextEncoder,tM=q.encode.bind(q)))(A)}var sM;function fG(A){let q;return(sM??(q=new globalThis.TextDecoder,sM=q.decode.bind(q)))(A)}var eA,Aq;class e6{constructor(){eA.set(this,void 0),Aq.set(this,void 0),s(this,eA,new Uint8Array,"f"),s(this,Aq,null,"f")}decode(A){if(A==null)return[];let q=A instanceof ArrayBuffer?new Uint8Array(A):typeof A==="string"?o6(A):A;s(this,eA,nM([V(this,eA,"f"),q]),"f");let g=[],E;while((E=XH(V(this,eA,"f"),V(this,Aq,"f")))!=null){if(E.carriage&&V(this,Aq,"f")==null){s(this,Aq,E.index,"f");continue}if(V(this,Aq,"f")!=null&&(E.index!==V(this,Aq,"f")+1||E.carriage)){g.push(fG(V(this,eA,"f").subarray(0,V(this,Aq,"f")-1))),s(this,eA,V(this,eA,"f").subarray(V(this,Aq,"f")),"f"),s(this,Aq,null,"f");continue}let F=V(this,Aq,"f")!==null?E.preceding-1:E.preceding,K=fG(V(this,eA,"f").subarray(0,F));g.push(K),s(this,eA,V(this,eA,"f").subarray(E.index),"f"),s(this,Aq,null,"f")}return g}flush(){if(!V(this,eA,"f").length)return[];return this.decode(`
|
|
141
|
+
`)}}eA=new WeakMap,Aq=new WeakMap;e6.NEWLINE_CHARS=new Set([`
|
|
142
|
+
`,"\r"]);e6.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function XH(A,q){for(let F=q??0;F<A.length;F++){if(A[F]===10)return{preceding:F,index:F+1,carriage:!1};if(A[F]===13)return{preceding:F,index:F+1,carriage:!0}}return null}function rM(A){for(let E=0;E<A.length-1;E++){if(A[E]===10&&A[E+1]===10)return E+2;if(A[E]===13&&A[E+1]===13)return E+2;if(A[E]===13&&A[E+1]===10&&E+3<A.length&&A[E+2]===13&&A[E+3]===10)return E+4}return-1}var Fj={off:0,error:200,warn:300,info:400,debug:500},cG=(A,q,g)=>{if(!A)return;if(zM(Fj,A))return A;HA(g).warn(`${q} was set to ${JSON.stringify(A)}, expected one of ${JSON.stringify(Object.keys(Fj))}`);return};function rF(){}function Ej(A,q,g){if(!q||Fj[A]>Fj[g])return rF;else return q[A].bind(q)}var HH={error:rF,warn:rF,info:rF,debug:rF},oM=new WeakMap;function HA(A){let q=A.logger,g=A.logLevel??"off";if(!q)return HH;let E=oM.get(q);if(E&&E[0]===g)return E[1];let F={error:Ej("error",q,g),warn:Ej("warn",q,g),info:Ej("info",q,g),debug:Ej("debug",q,g)};return oM.set(q,[g,F]),F}var Fg=(A)=>{if(A.options)A.options={...A.options},delete A.options.headers;if(A.headers)A.headers=Object.fromEntries((A.headers instanceof Headers?[...A.headers]:Object.entries(A.headers)).map(([q,g])=>[q,q.toLowerCase()==="authorization"||q.toLowerCase()==="cookie"||q.toLowerCase()==="set-cookie"?"***":g]));if("retryOfRequestLogID"in A){if(A.retryOfRequestLogID)A.retryOf=A.retryOfRequestLogID;delete A.retryOfRequestLogID}return A};var oF;class qq{constructor(A,q,g){this.iterator=A,oF.set(this,void 0),this.controller=q,s(this,oF,g,"f")}static fromSSEResponse(A,q,g){let E=!1,F=g?HA(g):console;async function*K(){if(E)throw new d("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");E=!0;let Z=!1;try{for await(let j of LH(A,q)){if(Z)continue;if(j.data.startsWith("[DONE]")){Z=!0;continue}if(j.event===null||!j.event.startsWith("thread.")){let U;try{U=JSON.parse(j.data)}catch(G){throw F.error("Could not parse message into JSON:",j.data),F.error("From chunk:",j.raw),G}if(U&&U.error)throw new VA(void 0,U.error,void 0,A.headers);yield U}else{let U;try{U=JSON.parse(j.data)}catch(G){throw console.error("Could not parse message into JSON:",j.data),console.error("From chunk:",j.raw),G}if(j.event=="error")throw new VA(void 0,U.error,U.message,void 0);yield{event:j.event,data:U}}}Z=!0}catch(j){if(bF(j))return;throw j}finally{if(!Z)q.abort()}}return new qq(K,q,g)}static fromReadableStream(A,q,g){let E=!1;async function*F(){let Z=new e6,j=CG(A);for await(let U of j)for(let G of Z.decode(U))yield G;for(let U of Z.flush())yield U}async function*K(){if(E)throw new d("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");E=!0;let Z=!1;try{for await(let j of F()){if(Z)continue;if(j)yield JSON.parse(j)}Z=!0}catch(j){if(bF(j))return;throw j}finally{if(!Z)q.abort()}}return new qq(K,q,g)}[(oF=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let A=[],q=[],g=this.iterator(),E=(F)=>{return{next:()=>{if(F.length===0){let K=g.next();A.push(K),q.push(K)}return F.shift()}}};return[new qq(()=>E(A),this.controller,V(this,oF,"f")),new qq(()=>E(q),this.controller,V(this,oF,"f"))]}toReadableStream(){let A=this,q;return wG({async start(){q=A[Symbol.asyncIterator]()},async pull(g){try{let{value:E,done:F}=await q.next();if(F)return g.close();let K=o6(JSON.stringify(E)+`
|
|
143
|
+
`);g.enqueue(K)}catch(E){g.error(E)}},async cancel(){await q.return?.()}})}}async function*LH(A,q){if(!A.body){if(q.abort(),typeof globalThis.navigator!=="undefined"&&globalThis.navigator.product==="ReactNative")throw new d("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new d("Attempted to iterate over a response with no body")}let g=new eM,E=new e6,F=CG(A.body);for await(let K of VH(F))for(let Z of E.decode(K)){let j=g.decode(Z);if(j)yield j}for(let K of E.flush()){let Z=g.decode(K);if(Z)yield Z}}async function*VH(A){let q=new Uint8Array;for await(let g of A){if(g==null)continue;let E=g instanceof ArrayBuffer?new Uint8Array(g):typeof g==="string"?o6(g):g,F=new Uint8Array(q.length+E.length);F.set(q),F.set(E,q.length),q=F;let K;while((K=rM(q))!==-1)yield q.slice(0,K),q=q.slice(K)}if(q.length>0)yield q}class eM{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(A){if(A.endsWith("\r"))A=A.substring(0,A.length-1);if(!A){if(!this.event&&!this.data.length)return null;let F={event:this.event,data:this.data.join(`
|
|
144
|
+
`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],F}if(this.chunks.push(A),A.startsWith(":"))return null;let[q,g,E]=WH(A,":");if(E.startsWith(" "))E=E.substring(1);if(q==="event")this.event=E;else if(q==="data")this.data.push(E);return null}}function WH(A,q){let g=A.indexOf(q);if(g!==-1)return[A.substring(0,g),q,A.substring(g+q.length)];return[A,"",""]}async function Kj(A,q){let{response:g,requestLogID:E,retryOfRequestLogID:F,startTime:K}=q,Z=await(async()=>{if(q.options.stream){if(HA(A).debug("response",g.status,g.url,g.headers,g.body),q.options.__streamClass)return q.options.__streamClass.fromSSEResponse(g,q.controller,A);return qq.fromSSEResponse(g,q.controller,A)}if(g.status===204)return null;if(q.options.__binaryResponse)return g;let U=g.headers.get("content-type")?.split(";")[0]?.trim();if(U?.includes("application/json")||U?.endsWith("+json")){let M=await g.json();return dG(M,g)}return await g.text()})();return HA(A).debug(`[${E}] response parsed`,Fg({retryOfRequestLogID:F,url:g.url,status:g.status,body:Z,durationMs:Date.now()-K})),Z}function dG(A,q){if(!A||typeof A!=="object"||Array.isArray(A))return A;return Object.defineProperty(A,"_request_id",{value:q.headers.get("x-request-id"),enumerable:!1})}var eF;class J6 extends Promise{constructor(A,q,g=Kj){super((E)=>{E(null)});this.responsePromise=q,this.parseResponse=g,eF.set(this,void 0),s(this,eF,A,"f")}_thenUnwrap(A){return new J6(V(this,eF,"f"),this.responsePromise,async(q,g)=>dG(A(await this.parseResponse(q,g),g),g.response))}asResponse(){return this.responsePromise.then((A)=>A.response)}async withResponse(){let[A,q]=await Promise.all([this.parse(),this.asResponse()]);return{data:A,response:q,request_id:q.headers.get("x-request-id")}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then((A)=>this.parseResponse(V(this,eF,"f"),A));return this.parsedPromise}then(A,q){return this.parse().then(A,q)}catch(A){return this.parse().catch(A)}finally(A){return this.parse().finally(A)}}eF=new WeakMap;var Zj;class jj{constructor(A,q,g,E){Zj.set(this,void 0),s(this,Zj,A,"f"),this.options=E,this.response=q,this.body=g}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageRequestOptions()!=null}async getNextPage(){let A=this.nextPageRequestOptions();if(!A)throw new d("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await V(this,Zj,"f").requestAPIList(this.constructor,A)}async*iterPages(){let A=this;yield A;while(A.hasNextPage())A=await A.getNextPage(),yield A}async*[(Zj=new WeakMap,Symbol.asyncIterator)](){for await(let A of this.iterPages())for(let q of A.getPaginatedItems())yield q}}class Uj extends J6{constructor(A,q,g){super(A,q,async(E,F)=>new g(E,F.response,await Kj(E,F),F.options))}async*[Symbol.asyncIterator](){let A=await this;for await(let q of A)yield q}}class Kg extends jj{constructor(A,q,g,E){super(A,q,g,E);this.data=g.data||[],this.object=g.object}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){return null}}class EA extends jj{constructor(A,q,g,E){super(A,q,g,E);this.data=g.data||[],this.has_more=g.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageRequestOptions(){let A=this.getPaginatedItems(),q=A[A.length-1]?.id;if(!q)return null;return{...this.options,query:{...BG(this.options.query),after:q}}}}class hg extends jj{constructor(A,q,g,E){super(A,q,g,E);this.data=g.data||[],this.has_more=g.has_more||!1,this.last_id=g.last_id||""}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageRequestOptions(){let A=this.last_id;if(!A)return null;return{...this.options,query:{...BG(this.options.query),after:A}}}}var lG=()=>{if(typeof File==="undefined"){let{process:A}=globalThis,q=typeof A?.versions?.node==="string"&&parseInt(A.versions.node.split("."))<20;throw new Error("`File` is not defined as a global, which is required for file uploads."+(q?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function AE(A,q,g){return lG(),new File(A,q??"unknown_file",g)}function AK(A){return(typeof A==="object"&&A!==null&&(("name"in A)&&A.name&&String(A.name)||("url"in A)&&A.url&&String(A.url)||("filename"in A)&&A.filename&&String(A.filename)||("path"in A)&&A.path&&String(A.path))||"").split(/[\\/]/).pop()||void 0}var Gj=(A)=>A!=null&&typeof A==="object"&&typeof A[Symbol.asyncIterator]==="function",iG=async(A,q)=>{if(!pG(A.body))return A;return{...A,body:await q9(A.body,q)}},gq=async(A,q)=>{return{...A,body:await q9(A.body,q)}},A9=new WeakMap;function TH(A){let q=typeof A==="function"?A:A.fetch,g=A9.get(q);if(g)return g;let E=(async()=>{try{let F="Response"in q?q.Response:(await q("data:,")).constructor,K=new FormData;if(K.toString()===await new F(K).text())return!1;return!0}catch{return!0}})();return A9.set(q,E),E}var q9=async(A,q)=>{if(!await TH(q))throw new TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let g=new FormData;return await Promise.all(Object.entries(A||{}).map(([E,F])=>uG(g,E,F))),g},g9=(A)=>A instanceof Blob&&("name"in A),IH=(A)=>typeof A==="object"&&A!==null&&(A instanceof Response||Gj(A)||g9(A)),pG=(A)=>{if(IH(A))return!0;if(Array.isArray(A))return A.some(pG);if(A&&typeof A==="object"){for(let q in A)if(pG(A[q]))return!0}return!1},uG=async(A,q,g)=>{if(g===void 0)return;if(g==null)throw new TypeError(`Received null for "${q}"; to pass null in FormData, you must use the string 'null'`);if(typeof g==="string"||typeof g==="number"||typeof g==="boolean")A.append(q,String(g));else if(g instanceof Response)A.append(q,AE([await g.blob()],AK(g)));else if(Gj(g))A.append(q,AE([await new Response(eZ(g)).blob()],AK(g)));else if(g9(g))A.append(q,g,AK(g));else if(Array.isArray(g))await Promise.all(g.map((E)=>uG(A,q+"[]",E)));else if(typeof g==="object")await Promise.all(Object.entries(g).map(([E,F])=>uG(A,`${q}[${E}]`,F)));else throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${g} instead`)};var E9=(A)=>A!=null&&typeof A==="object"&&typeof A.size==="number"&&typeof A.type==="string"&&typeof A.text==="function"&&typeof A.slice==="function"&&typeof A.arrayBuffer==="function",xH=(A)=>A!=null&&typeof A==="object"&&typeof A.name==="string"&&typeof A.lastModified==="number"&&E9(A),PH=(A)=>A!=null&&typeof A==="object"&&typeof A.url==="string"&&typeof A.blob==="function";async function Yj(A,q,g){if(lG(),A=await A,xH(A)){if(A instanceof File)return A;return AE([await A.arrayBuffer()],A.name)}if(PH(A)){let F=await A.blob();return q||(q=new URL(A.url).pathname.split(/[\\/]/).pop()),AE(await tG(F),q,g)}let E=await tG(A);if(q||(q=AK(A)),!g?.type){let F=E.find((K)=>typeof K==="object"&&("type"in K)&&K.type);if(typeof F==="string")g={...g,type:F}}return AE(E,q,g)}async function tG(A){let q=[];if(typeof A==="string"||ArrayBuffer.isView(A)||A instanceof ArrayBuffer)q.push(A);else if(E9(A))q.push(A instanceof Blob?A:await A.arrayBuffer());else if(Gj(A))for await(let g of A)q.push(...await tG(g));else{let g=A?.constructor?.name;throw new Error(`Unexpected data type: ${typeof A}${g?`; constructor: ${g}`:""}${RH(A)}`)}return q}function RH(A){if(typeof A!=="object"||A===null)return"";return`; props: [${Object.getOwnPropertyNames(A).map((g)=>`"${g}"`).join(", ")}]`}class h{constructor(A){this._client=A}}function K9(A){return A.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var F9=Object.freeze(Object.create(null)),aH=(A=K9)=>function q(g,...E){if(g.length===1)return g[0];let F=!1,K=[],Z=g.reduce((Y,M,O)=>{if(/[?#]/.test(M))F=!0;let $=E[O],_=(F?encodeURIComponent:A)(""+$);if(O!==E.length&&($==null||typeof $==="object"&&$.toString===Object.getPrototypeOf(Object.getPrototypeOf($.hasOwnProperty??F9)??F9)?.toString))_=$+"",K.push({start:Y.length+M.length,length:_.length,error:`Value of type ${Object.prototype.toString.call($).slice(8,-1)} is not a valid path parameter`});return Y+M+(O===E.length?"":_)},""),j=Z.split(/[?#]/,1)[0],U=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,G;while((G=U.exec(j))!==null)K.push({start:G.index,length:G[0].length,error:`Value "${G[0]}" can't be safely passed as a path parameter`});if(K.sort((Y,M)=>Y.start-M.start),K.length>0){let Y=0,M=K.reduce((O,$)=>{let _=" ".repeat($.start-Y),x="^".repeat($.length);return Y=$.start+$.length,O+_+x},"");throw new d(`Path parameters result in path with invalid segments:
|
|
145
|
+
${K.map((O)=>O.error).join(`
|
|
137
146
|
`)}
|
|
138
147
|
${Z}
|
|
139
|
-
${M}`)}return Z},I=hX(hJ);class d6 extends S{list(A,q={},g){return this._client.getAPIList(I`/chat/completions/${A}/messages`,EA,{query:q,...g})}}function vF(A){return A!==void 0&&"function"in A&&A.function!==void 0}function mF(A){return A?.$brand==="auto-parseable-response-format"}function E6(A){return A?.$brand==="auto-parseable-tool"}function zJ(A,q){if(!q||!XG(q))return{...A,choices:A.choices.map((g)=>{return wJ(g.message.tool_calls),{...g,message:{...g.message,parsed:null,...g.message.tool_calls?{tool_calls:g.message.tool_calls}:void 0}}})};return fF(A,q)}function fF(A,q){let g=A.choices.map((E)=>{if(E.finish_reason==="length")throw new BF;if(E.finish_reason==="content_filter")throw new wF;return wJ(E.message.tool_calls),{...E,message:{...E.message,...E.message.tool_calls?{tool_calls:E.message.tool_calls?.map((F)=>CX(q,F))??void 0}:void 0,parsed:E.message.content&&!E.message.refusal?wX(q,E.message.content):null}}});return{...A,choices:g}}function wX(A,q){if(A.response_format?.type!=="json_schema")return null;if(A.response_format?.type==="json_schema"){if("$parseRaw"in A.response_format)return A.response_format.$parseRaw(q);return JSON.parse(q)}return null}function CX(A,q){let g=A.tools?.find((E)=>vF(E)&&E.function?.name===q.function.name);return{...q,function:{...q.function,parsed_arguments:E6(g)?g.$parseRaw(q.function.arguments):g?.function.strict?JSON.parse(q.function.arguments):null}}}function BJ(A,q){if(!A||!("tools"in A)||!A.tools)return!1;let g=A.tools?.find((E)=>vF(E)&&E.function?.name===q.function.name);return vF(g)&&(E6(g)||g?.function.strict||!1)}function XG(A){if(mF(A.response_format))return!0;return A.tools?.some((q)=>E6(q)||q.type==="function"&&q.function.strict===!0)??!1}function wJ(A){for(let q of A||[])if(q.type!=="function")throw new f(`Currently only \`function\` tool calls are supported; Received \`${q.type}\``)}function CJ(A){for(let q of A??[]){if(q.type!=="function")throw new f(`Currently only \`function\` tool types support auto-parsing; Received \`${q.type}\``);if(q.function.strict!==!0)throw new f(`The \`${q.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var p6=(A)=>{return A?.role==="assistant"},HG=(A)=>{return A?.role==="tool"};var LG,lZ,iZ,cF,dF,tZ,pF,gg,uF,sZ,nZ,u6,kJ;class F6{constructor(){LG.add(this),this.controller=new AbortController,lZ.set(this,void 0),iZ.set(this,()=>{}),cF.set(this,()=>{}),dF.set(this,void 0),tZ.set(this,()=>{}),pF.set(this,()=>{}),gg.set(this,{}),uF.set(this,!1),sZ.set(this,!1),nZ.set(this,!1),u6.set(this,!1),i(this,lZ,new Promise((A,q)=>{i(this,iZ,A,"f"),i(this,cF,q,"f")}),"f"),i(this,dF,new Promise((A,q)=>{i(this,tZ,A,"f"),i(this,pF,q,"f")}),"f"),L(this,lZ,"f").catch(()=>{}),L(this,dF,"f").catch(()=>{})}_run(A){setTimeout(()=>{A().then(()=>{this._emitFinal(),this._emit("end")},L(this,LG,"m",kJ).bind(this))},0)}_connected(){if(this.ended)return;L(this,iZ,"f").call(this),this._emit("connect")}get ended(){return L(this,uF,"f")}get errored(){return L(this,sZ,"f")}get aborted(){return L(this,nZ,"f")}abort(){this.controller.abort()}on(A,q){return(L(this,gg,"f")[A]||(L(this,gg,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=L(this,gg,"f")[A];if(!g)return this;let E=g.findIndex((F)=>F.listener===q);if(E>=0)g.splice(E,1);return this}once(A,q){return(L(this,gg,"f")[A]||(L(this,gg,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(i(this,u6,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){i(this,u6,!0,"f"),await L(this,dF,"f")}_emit(A,...q){if(L(this,uF,"f"))return;if(A==="end")i(this,uF,!0,"f"),L(this,tZ,"f").call(this);let g=L(this,gg,"f")[A];if(g)L(this,gg,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!L(this,u6,"f")&&!g?.length)Promise.reject(E);L(this,cF,"f").call(this,E),L(this,pF,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!L(this,u6,"f")&&!g?.length)Promise.reject(E);L(this,cF,"f").call(this,E),L(this,pF,"f").call(this,E),this._emit("end")}}_emitFinal(){}}lZ=new WeakMap,iZ=new WeakMap,cF=new WeakMap,dF=new WeakMap,tZ=new WeakMap,pF=new WeakMap,gg=new WeakMap,uF=new WeakMap,sZ=new WeakMap,nZ=new WeakMap,u6=new WeakMap,LG=new WeakSet,kJ=function(q){if(i(this,sZ,!0,"f"),q instanceof Error&&q.name==="AbortError")q=new TA;if(q instanceof TA)return i(this,nZ,!0,"f"),this._emit("abort",q);if(q instanceof f)return this._emit("error",q);if(q instanceof Error){let g=new f(q.message);return g.cause=q,this._emit("error",g)}return this._emit("error",new f(String(q)))};function DJ(A){return typeof A.parse==="function"}var cA,VG,rZ,WG,NG,xG,yJ,bJ,kX=10;class lF extends F6{constructor(){super(...arguments);cA.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(A){this._chatCompletions.push(A),this._emit("chatCompletion",A);let q=A.choices[0]?.message;if(q)this._addMessage(q);return A}_addMessage(A,q=!0){if(!("content"in A))A.content=null;if(this.messages.push(A),q){if(this._emit("message",A),HG(A)&&A.content)this._emit("functionToolCallResult",A.content);else if(p6(A)&&A.tool_calls){for(let g of A.tool_calls)if(g.type==="function")this._emit("functionToolCall",g.function)}}}async finalChatCompletion(){await this.done();let A=this._chatCompletions[this._chatCompletions.length-1];if(!A)throw new f("stream ended without producing a ChatCompletion");return A}async finalContent(){return await this.done(),L(this,cA,"m",VG).call(this)}async finalMessage(){return await this.done(),L(this,cA,"m",rZ).call(this)}async finalFunctionToolCall(){return await this.done(),L(this,cA,"m",WG).call(this)}async finalFunctionToolCallResult(){return await this.done(),L(this,cA,"m",NG).call(this)}async totalUsage(){return await this.done(),L(this,cA,"m",xG).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let A=this._chatCompletions[this._chatCompletions.length-1];if(A)this._emit("finalChatCompletion",A);let q=L(this,cA,"m",rZ).call(this);if(q)this._emit("finalMessage",q);let g=L(this,cA,"m",VG).call(this);if(g)this._emit("finalContent",g);let E=L(this,cA,"m",WG).call(this);if(E)this._emit("finalFunctionToolCall",E);let F=L(this,cA,"m",NG).call(this);if(F!=null)this._emit("finalFunctionToolCallResult",F);if(this._chatCompletions.some((K)=>K.usage))this._emit("totalUsage",L(this,cA,"m",xG).call(this))}async _createChatCompletion(A,q,g){let E=g?.signal;if(E){if(E.aborted)this.controller.abort();E.addEventListener("abort",()=>this.controller.abort())}L(this,cA,"m",yJ).call(this,q);let F=await A.chat.completions.create({...q,stream:!1},{...g,signal:this.controller.signal});return this._connected(),this._addChatCompletion(fF(F,q))}async _runChatCompletion(A,q,g){for(let E of q.messages)this._addMessage(E,!1);return await this._createChatCompletion(A,q,g)}async _runTools(A,q,g){let{tool_choice:F="auto",stream:K,...Z}=q,j=typeof F!=="string"&&F.type==="function"&&F?.function?.name,{maxChatCompletions:U=kX}=g||{},O=q.tools.map((J)=>{if(E6(J)){if(!J.$callback)throw new f("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:J.$callback,name:J.function.name,description:J.function.description||"",parameters:J.function.parameters,parse:J.$parseRaw,strict:!0}}}return J}),Y={};for(let J of O)if(J.type==="function")Y[J.function.name||J.function.function.name]=J.function;let M="tools"in q?O.map((J)=>J.type==="function"?{type:"function",function:{name:J.function.name||J.function.function.name,parameters:J.function.parameters,description:J.function.description,strict:J.function.strict}}:J):void 0;for(let J of q.messages)this._addMessage(J,!1);for(let J=0;J<U;++J){let _=(await this._createChatCompletion(A,{...Z,tool_choice:F,tools:M,messages:[...this.messages]},g)).choices[0]?.message;if(!_)throw new f("missing message in ChatCompletion response");if(!_.tool_calls?.length)return;for(let T of _.tool_calls){if(T.type!=="function")continue;let x=T.id,{name:V,arguments:a}=T.function,k=Y[V];if(!k){let R=`Invalid tool_call: ${JSON.stringify(V)}. Available options are: ${Object.keys(Y).map((z)=>JSON.stringify(z)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:x,content:R});continue}else if(j&&j!==V){let R=`Invalid tool_call: ${JSON.stringify(V)}. ${JSON.stringify(j)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:x,content:R});continue}let C;try{C=DJ(k)?await k.parse(a):a}catch(R){let z=R instanceof Error?R.message:String(R);this._addMessage({role:"tool",tool_call_id:x,content:z});continue}let u=await k.function(C,this),c=L(this,cA,"m",bJ).call(this,u);if(this._addMessage({role:"tool",tool_call_id:x,content:c}),j)return}}return}}cA=new WeakSet,VG=function(){return L(this,cA,"m",rZ).call(this).content??null},rZ=function(){let q=this.messages.length;while(q-- >0){let g=this.messages[q];if(p6(g))return{...g,content:g.content??null,refusal:g.refusal??null}}throw new f("stream ended without producing a ChatCompletionMessage with role=assistant")},WG=function(){for(let q=this.messages.length-1;q>=0;q--){let g=this.messages[q];if(p6(g)&&g?.tool_calls?.length)return g.tool_calls.filter((E)=>E.type==="function").at(-1)?.function}return},NG=function(){for(let q=this.messages.length-1;q>=0;q--){let g=this.messages[q];if(HG(g)&&g.content!=null&&typeof g.content==="string"&&this.messages.some((E)=>E.role==="assistant"&&E.tool_calls?.some((F)=>F.type==="function"&&F.id===g.tool_call_id)))return g.content}return},xG=function(){let q={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage:g}of this._chatCompletions)if(g)q.completion_tokens+=g.completion_tokens,q.prompt_tokens+=g.prompt_tokens,q.total_tokens+=g.total_tokens;return q},yJ=function(q){if(q.n!=null&&q.n>1)throw new f("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},bJ=function(q){return typeof q==="string"?q:q===void 0?"undefined":JSON.stringify(q)};class iF extends lF{static runTools(A,q,g){let E=new iF,F={...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"runTools"}};return E._run(()=>E._runTools(A,q,F)),E}_addMessage(A,q=!0){if(super._addMessage(A,q),p6(A)&&A.content)this._emit("content",A.content)}}var hA={STR:1,NUM:2,ARR:4,OBJ:8,NULL:16,BOOL:32,NAN:64,INFINITY:128,MINUS_INFINITY:256,INF:384,SPECIAL:496,ATOM:499,COLLECTION:12,ALL:511};class vJ extends Error{}class mJ extends Error{}function DX(A,q=hA.ALL){if(typeof A!=="string")throw TypeError(`expecting str, got ${typeof A}`);if(!A.trim())throw Error(`${A} is empty`);return yX(A.trim(),q)}var yX=(A,q)=>{let g=A.length,E=0,F=(J)=>{throw new vJ(`${J} at position ${E}`)},K=(J)=>{throw new mJ(`${J} at position ${E}`)},Z=()=>{if(M(),E>=g)F("Unexpected end of input");if(A[E]==='"')return j();if(A[E]==="{")return U();if(A[E]==="[")return O();if(A.substring(E,E+4)==="null"||hA.NULL&q&&g-E<4&&"null".startsWith(A.substring(E)))return E+=4,null;if(A.substring(E,E+4)==="true"||hA.BOOL&q&&g-E<4&&"true".startsWith(A.substring(E)))return E+=4,!0;if(A.substring(E,E+5)==="false"||hA.BOOL&q&&g-E<5&&"false".startsWith(A.substring(E)))return E+=5,!1;if(A.substring(E,E+8)==="Infinity"||hA.INFINITY&q&&g-E<8&&"Infinity".startsWith(A.substring(E)))return E+=8,1/0;if(A.substring(E,E+9)==="-Infinity"||hA.MINUS_INFINITY&q&&1<g-E&&g-E<9&&"-Infinity".startsWith(A.substring(E)))return E+=9,-1/0;if(A.substring(E,E+3)==="NaN"||hA.NAN&q&&g-E<3&&"NaN".startsWith(A.substring(E)))return E+=3,NaN;return Y()},j=()=>{let J=E,$=!1;E++;while(E<g&&(A[E]!=='"'||$&&A[E-1]==="\\"))$=A[E]==="\\"?!$:!1,E++;if(A.charAt(E)=='"')try{return JSON.parse(A.substring(J,++E-Number($)))}catch(_){K(String(_))}else if(hA.STR&q)try{return JSON.parse(A.substring(J,E-Number($))+'"')}catch(_){return JSON.parse(A.substring(J,A.lastIndexOf("\\"))+'"')}F("Unterminated string literal")},U=()=>{E++,M();let J={};try{while(A[E]!=="}"){if(M(),E>=g&&hA.OBJ&q)return J;let $=j();M(),E++;try{let _=Z();Object.defineProperty(J,$,{value:_,writable:!0,enumerable:!0,configurable:!0})}catch(_){if(hA.OBJ&q)return J;else throw _}if(M(),A[E]===",")E++}}catch($){if(hA.OBJ&q)return J;else F("Expected '}' at end of object")}return E++,J},O=()=>{E++;let J=[];try{while(A[E]!=="]")if(J.push(Z()),M(),A[E]===",")E++}catch($){if(hA.ARR&q)return J;F("Expected ']' at end of array")}return E++,J},Y=()=>{if(E===0){if(A==="-"&&hA.NUM&q)F("Not sure what '-' is");try{return JSON.parse(A)}catch($){if(hA.NUM&q)try{if(A[A.length-1]===".")return JSON.parse(A.substring(0,A.lastIndexOf(".")));return JSON.parse(A.substring(0,A.lastIndexOf("e")))}catch(_){}K(String($))}}let J=E;if(A[E]==="-")E++;while(A[E]&&!",]}".includes(A[E]))E++;if(E==g&&!(hA.NUM&q))F("Unterminated number literal");try{return JSON.parse(A.substring(J,E))}catch($){if(A.substring(J,E)==="-"&&hA.NUM&q)F("Not sure what '-' is");try{return JSON.parse(A.substring(J,A.lastIndexOf("e")))}catch(_){K(String(_))}}},M=()=>{while(E<g&&`
|
|
140
|
-
\r
|
|
141
|
-
${
|
|
142
|
-
${
|
|
143
|
-
${
|
|
144
|
-
${Aj(A)}`);return{...z,id:R,type:c,function:{...gA,name:m,arguments:n}}})}};return{...$,message:{...V,content:_,role:a,refusal:O.refusal??null},finish_reason:Y,index:M,logprobs:J}}),created:F,model:K,object:"chat.completion",...Z?{system_fingerprint:Z}:{}};return zJ(U,q)}function Aj(A){return JSON.stringify(A)}function cJ(A){return}function dJ(A){}class i6 extends Ng{static fromReadableStream(A){let q=new i6(null);return q._run(()=>q._fromReadableStream(A)),q}static runTools(A,q,g){let E=new i6(q),F={...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"runTools"}};return E._run(()=>E._runTools(A,q,F)),E}}class xg extends S{constructor(){super(...arguments);this.messages=new d6(this._client)}create(A,q){return this._client.post("/chat/completions",{body:A,...q,stream:A.stream??!1})}retrieve(A,q){return this._client.get(I`/chat/completions/${A}`,q)}update(A,q,g){return this._client.post(I`/chat/completions/${A}`,{body:q,...g})}list(A={},q){return this._client.getAPIList("/chat/completions",EA,{query:A,...q})}delete(A,q){return this._client.delete(I`/chat/completions/${A}`,q)}parse(A,q){return CJ(A.tools),this._client.chat.completions.create(A,{...q,headers:{...q?.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap((g)=>fF(g,A))}runTools(A,q){if(A.stream)return i6.runTools(this._client,A,q);return iF.runTools(this._client,A,q)}stream(A,q){return Ng.createChatCompletion(this._client,A,q)}}xg.Messages=d6;class K6 extends S{constructor(){super(...arguments);this.completions=new xg(this._client)}}K6.Completions=xg;var pJ=Symbol("brand.privateNullableHeaders");function*mX(A){if(!A)return;if(pJ in A){let{values:E,nulls:F}=A;yield*E.entries();for(let K of F)yield[K,null];return}let q=!1,g;if(A instanceof Headers)g=A.entries();else if(eU(A))g=A;else q=!0,g=Object.entries(A??{});for(let E of g){let F=E[0];if(typeof F!=="string")throw TypeError("expected header name to be a string");let K=eU(E[1])?E[1]:[E[1]],Z=!1;for(let j of K){if(j===void 0)continue;if(q&&!Z)Z=!0,yield[F,null];yield[F,j]}}}var D=(A)=>{let q=new Headers,g=new Set;for(let E of A){let F=new Set;for(let[K,Z]of mX(E)){let j=K.toLowerCase();if(!F.has(j))q.delete(K),F.add(j);if(Z===null)q.delete(K),g.add(j);else q.append(K,Z),g.delete(j)}}return{[pJ]:!0,values:q,nulls:g}};class tF extends S{create(A,q){return this._client.post("/audio/speech",{body:A,...q,headers:D([{Accept:"application/octet-stream"},q?.headers]),__binaryResponse:!0})}}class sF extends S{create(A,q){return this._client.post("/audio/transcriptions",oA({body:A,...q,stream:A.stream??!1,__metadata:{model:A.model}},this._client))}}class nF extends S{create(A,q){return this._client.post("/audio/translations",oA({body:A,...q,__metadata:{model:A.model}},this._client))}}class Fg extends S{constructor(){super(...arguments);this.transcriptions=new sF(this._client),this.translations=new nF(this._client),this.speech=new tF(this._client)}}Fg.Transcriptions=sF;Fg.Translations=nF;Fg.Speech=tF;class t6 extends S{create(A,q){return this._client.post("/batches",{body:A,...q})}retrieve(A,q){return this._client.get(I`/batches/${A}`,q)}list(A={},q){return this._client.getAPIList("/batches",EA,{query:A,...q})}cancel(A,q){return this._client.post(I`/batches/${A}/cancel`,q)}}class rF extends S{create(A,q){return this._client.post("/assistants",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}retrieve(A,q){return this._client.get(I`/assistants/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(I`/assistants/${A}`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A={},q){return this._client.getAPIList("/assistants",EA,{query:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}delete(A,q){return this._client.delete(I`/assistants/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class oF extends S{create(A,q){return this._client.post("/realtime/sessions",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class eF extends S{create(A,q){return this._client.post("/realtime/transcription_sessions",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class Z6 extends S{constructor(){super(...arguments);this.sessions=new oF(this._client),this.transcriptionSessions=new eF(this._client)}}Z6.Sessions=oF;Z6.TranscriptionSessions=eF;class AK extends S{create(A,q){return this._client.post("/chatkit/sessions",{body:A,...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}cancel(A,q){return this._client.post(I`/chatkit/sessions/${A}/cancel`,{...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}}class qK extends S{retrieve(A,q){return this._client.get(I`/chatkit/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}list(A={},q){return this._client.getAPIList("/chatkit/threads",Vg,{query:A,...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}delete(A,q){return this._client.delete(I`/chatkit/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}listItems(A,q={},g){return this._client.getAPIList(I`/chatkit/threads/${A}/items`,Vg,{query:q,...g,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},g?.headers])})}}class j6 extends S{constructor(){super(...arguments);this.sessions=new AK(this._client),this.threads=new qK(this._client)}}j6.Sessions=AK;j6.Threads=qK;class gK extends S{create(A,q,g){return this._client.post(I`/threads/${A}/messages`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}retrieve(A,q,g){let{thread_id:E}=q;return this._client.get(I`/threads/${E}/messages/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}update(A,q,g){let{thread_id:E,...F}=q;return this._client.post(I`/threads/${E}/messages/${A}`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(I`/threads/${A}/messages`,EA,{query:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}delete(A,q,g){let{thread_id:E}=q;return this._client.delete(I`/threads/${E}/messages/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}class EK extends S{retrieve(A,q,g){let{thread_id:E,run_id:F,...K}=q;return this._client.get(I`/threads/${E}/runs/${F}/steps/${A}`,{query:K,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q,g){let{thread_id:E,...F}=q;return this._client.getAPIList(I`/threads/${E}/runs/${A}/steps`,EA,{query:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}var uJ=(A)=>{if(typeof Buffer<"u"){let q=Buffer.from(A,"base64");return Array.from(new Float32Array(q.buffer,q.byteOffset,q.length/Float32Array.BYTES_PER_ELEMENT))}else{let q=atob(A),g=q.length,E=new Uint8Array(g);for(let F=0;F<g;F++)E[F]=q.charCodeAt(F);return Array.from(new Float32Array(E.buffer))}};var Tg=(A)=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[A]?.trim()??void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.(A)?.trim();return};var wA,G6,hG,Rq,qj,Xq,Y6,s6,U6,Fj,eA,gj,Ej,ZK,FK,KK,lJ,iJ,tJ,sJ,nJ,rJ,oJ;class Ig extends F6{constructor(){super(...arguments);wA.add(this),hG.set(this,[]),Rq.set(this,{}),qj.set(this,{}),Xq.set(this,void 0),Y6.set(this,void 0),s6.set(this,void 0),U6.set(this,void 0),Fj.set(this,void 0),eA.set(this,void 0),gj.set(this,void 0),Ej.set(this,void 0),ZK.set(this,void 0)}[(hG=new WeakMap,Rq=new WeakMap,qj=new WeakMap,Xq=new WeakMap,Y6=new WeakMap,s6=new WeakMap,U6=new WeakMap,Fj=new WeakMap,eA=new WeakMap,gj=new WeakMap,Ej=new WeakMap,ZK=new WeakMap,wA=new WeakSet,Symbol.asyncIterator)](){let A=[],q=[],g=!1;return this.on("event",(E)=>{let F=q.shift();if(F)F.resolve(E);else A.push(E)}),this.on("end",()=>{g=!0;for(let E of q)E.resolve(void 0);q.length=0}),this.on("abort",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),this.on("error",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),{next:async()=>{if(!A.length){if(g)return{value:void 0,done:!0};return new Promise((F,K)=>q.push({resolve:F,reject:K})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:A.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}static fromReadableStream(A){let q=new G6;return q._run(()=>q._fromReadableStream(A)),q}async _fromReadableStream(A,q){let g=q?.signal;if(g){if(g.aborted)this.controller.abort();g.addEventListener("abort",()=>this.controller.abort())}this._connected();let E=rA.fromReadableStream(A,this.controller);for await(let F of E)L(this,wA,"m",FK).call(this,F);if(E.controller.signal?.aborted)throw new TA;return this._addRun(L(this,wA,"m",KK).call(this))}toReadableStream(){return new rA(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(A,q,g,E){let F=new G6;return F._run(()=>F._runToolAssistantStream(A,q,g,{...E,headers:{...E?.headers,"X-Stainless-Helper-Method":"stream"}})),F}async _createToolAssistantStream(A,q,g,E){let F=E?.signal;if(F){if(F.aborted)this.controller.abort();F.addEventListener("abort",()=>this.controller.abort())}let K={...g,stream:!0},Z=await A.submitToolOutputs(q,K,{...E,signal:this.controller.signal});this._connected();for await(let j of Z)L(this,wA,"m",FK).call(this,j);if(Z.controller.signal?.aborted)throw new TA;return this._addRun(L(this,wA,"m",KK).call(this))}static createThreadAssistantStream(A,q,g){let E=new G6;return E._run(()=>E._threadAssistantStream(A,q,{...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"stream"}})),E}static createAssistantStream(A,q,g,E){let F=new G6;return F._run(()=>F._runAssistantStream(A,q,g,{...E,headers:{...E?.headers,"X-Stainless-Helper-Method":"stream"}})),F}currentEvent(){return L(this,gj,"f")}currentRun(){return L(this,Ej,"f")}currentMessageSnapshot(){return L(this,Xq,"f")}currentRunStepSnapshot(){return L(this,ZK,"f")}async finalRunSteps(){return await this.done(),Object.values(L(this,Rq,"f"))}async finalMessages(){return await this.done(),Object.values(L(this,qj,"f"))}async finalRun(){if(await this.done(),!L(this,Y6,"f"))throw Error("Final run was not received.");return L(this,Y6,"f")}async _createThreadAssistantStream(A,q,g){let E=g?.signal;if(E){if(E.aborted)this.controller.abort();E.addEventListener("abort",()=>this.controller.abort())}let F={...q,stream:!0},K=await A.createAndRun(F,{...g,signal:this.controller.signal});this._connected();for await(let Z of K)L(this,wA,"m",FK).call(this,Z);if(K.controller.signal?.aborted)throw new TA;return this._addRun(L(this,wA,"m",KK).call(this))}async _createAssistantStream(A,q,g,E){let F=E?.signal;if(F){if(F.aborted)this.controller.abort();F.addEventListener("abort",()=>this.controller.abort())}let K={...g,stream:!0},Z=await A.create(q,K,{...E,signal:this.controller.signal});this._connected();for await(let j of Z)L(this,wA,"m",FK).call(this,j);if(Z.controller.signal?.aborted)throw new TA;return this._addRun(L(this,wA,"m",KK).call(this))}static accumulateDelta(A,q){for(let[g,E]of Object.entries(q)){if(!A.hasOwnProperty(g)){A[g]=E;continue}let F=A[g];if(F===null||F===void 0){A[g]=E;continue}if(g==="index"||g==="type"){A[g]=E;continue}if(typeof F==="string"&&typeof E==="string")F+=E;else if(typeof F==="number"&&typeof E==="number")F+=E;else if(CF(F)&&CF(E))F=this.accumulateDelta(F,E);else if(Array.isArray(F)&&Array.isArray(E)){if(F.every((K)=>typeof K==="string"||typeof K==="number")){F.push(...E);continue}for(let K of E){if(!CF(K))throw Error(`Expected array delta entry to be an object but got: ${K}`);let Z=K.index;if(Z==null)throw console.error(K),Error("Expected array delta entry to have an `index` property");if(typeof Z!=="number")throw Error(`Expected array delta entry \`index\` property to be a number but got ${Z}`);let j=F[Z];if(j==null)F.push(K);else F[Z]=this.accumulateDelta(j,K)}continue}else throw Error(`Unhandled record type: ${g}, deltaValue: ${E}, accValue: ${F}`);A[g]=F}return A}_addRun(A){return A}async _threadAssistantStream(A,q,g){return await this._createThreadAssistantStream(q,A,g)}async _runAssistantStream(A,q,g,E){return await this._createAssistantStream(q,A,g,E)}async _runToolAssistantStream(A,q,g,E){return await this._createToolAssistantStream(q,A,g,E)}}G6=Ig,FK=function(q){if(this.ended)return;switch(i(this,gj,q,"f"),L(this,wA,"m",tJ).call(this,q),q.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":L(this,wA,"m",oJ).call(this,q);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":L(this,wA,"m",iJ).call(this,q);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":L(this,wA,"m",lJ).call(this,q);break;case"error":throw Error("Encountered an error event in event processing - errors should be processed earlier");default:eX(q)}},KK=function(){if(this.ended)throw new f("stream has ended, this shouldn't happen");if(!L(this,Y6,"f"))throw Error("Final run has not been received");return L(this,Y6,"f")},lJ=function(q){let[g,E]=L(this,wA,"m",nJ).call(this,q,L(this,Xq,"f"));i(this,Xq,g,"f"),L(this,qj,"f")[g.id]=g;for(let F of E){let K=g.content[F.index];if(K?.type=="text")this._emit("textCreated",K.text)}switch(q.event){case"thread.message.created":this._emit("messageCreated",q.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",q.data.delta,g),q.data.delta.content)for(let F of q.data.delta.content){if(F.type=="text"&&F.text){let K=F.text,Z=g.content[F.index];if(Z&&Z.type=="text")this._emit("textDelta",K,Z.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(F.index!=L(this,s6,"f")){if(L(this,U6,"f"))switch(L(this,U6,"f").type){case"text":this._emit("textDone",L(this,U6,"f").text,L(this,Xq,"f"));break;case"image_file":this._emit("imageFileDone",L(this,U6,"f").image_file,L(this,Xq,"f"));break}i(this,s6,F.index,"f")}i(this,U6,g.content[F.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(L(this,s6,"f")!==void 0){let F=q.data.content[L(this,s6,"f")];if(F)switch(F.type){case"image_file":this._emit("imageFileDone",F.image_file,L(this,Xq,"f"));break;case"text":this._emit("textDone",F.text,L(this,Xq,"f"));break}}if(L(this,Xq,"f"))this._emit("messageDone",q.data);i(this,Xq,void 0,"f")}},iJ=function(q){let g=L(this,wA,"m",sJ).call(this,q);switch(i(this,ZK,g,"f"),q.event){case"thread.run.step.created":this._emit("runStepCreated",q.data);break;case"thread.run.step.delta":let E=q.data.delta;if(E.step_details&&E.step_details.type=="tool_calls"&&E.step_details.tool_calls&&g.step_details.type=="tool_calls")for(let K of E.step_details.tool_calls)if(K.index==L(this,Fj,"f"))this._emit("toolCallDelta",K,g.step_details.tool_calls[K.index]);else{if(L(this,eA,"f"))this._emit("toolCallDone",L(this,eA,"f"));if(i(this,Fj,K.index,"f"),i(this,eA,g.step_details.tool_calls[K.index],"f"),L(this,eA,"f"))this._emit("toolCallCreated",L(this,eA,"f"))}this._emit("runStepDelta",q.data.delta,g);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":if(i(this,ZK,void 0,"f"),q.data.step_details.type=="tool_calls"){if(L(this,eA,"f"))this._emit("toolCallDone",L(this,eA,"f")),i(this,eA,void 0,"f")}this._emit("runStepDone",q.data,g);break;case"thread.run.step.in_progress":break}},tJ=function(q){L(this,hG,"f").push(q),this._emit("event",q)},sJ=function(q){switch(q.event){case"thread.run.step.created":return L(this,Rq,"f")[q.data.id]=q.data,q.data;case"thread.run.step.delta":let g=L(this,Rq,"f")[q.data.id];if(!g)throw Error("Received a RunStepDelta before creation of a snapshot");let E=q.data;if(E.delta){let F=G6.accumulateDelta(g,E.delta);L(this,Rq,"f")[q.data.id]=F}return L(this,Rq,"f")[q.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":L(this,Rq,"f")[q.data.id]=q.data;break}if(L(this,Rq,"f")[q.data.id])return L(this,Rq,"f")[q.data.id];throw Error("No snapshot available")},nJ=function(q,g){let E=[];switch(q.event){case"thread.message.created":return[q.data,E];case"thread.message.delta":if(!g)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let F=q.data;if(F.delta.content)for(let K of F.delta.content)if(K.index in g.content){let Z=g.content[K.index];g.content[K.index]=L(this,wA,"m",rJ).call(this,K,Z)}else g.content[K.index]=K,E.push(K);return[g,E];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(g)return[g,E];else throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},rJ=function(q,g){return G6.accumulateDelta(g,q)},oJ=function(q){switch(i(this,Ej,q.data,"f"),q.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":case"thread.run.incomplete":if(i(this,Y6,q.data,"f"),L(this,eA,"f"))this._emit("toolCallDone",L(this,eA,"f")),i(this,eA,void 0,"f");break;case"thread.run.cancelling":break}};function eX(A){}class n6 extends S{constructor(){super(...arguments);this.steps=new EK(this._client)}create(A,q,g){let{include:E,...F}=q;return this._client.post(I`/threads/${A}/runs`,{query:{include:E},body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers]),stream:q.stream??!1})}retrieve(A,q,g){let{thread_id:E}=q;return this._client.get(I`/threads/${E}/runs/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}update(A,q,g){let{thread_id:E,...F}=q;return this._client.post(I`/threads/${E}/runs/${A}`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(I`/threads/${A}/runs`,EA,{query:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}cancel(A,q,g){let{thread_id:E}=q;return this._client.post(I`/threads/${E}/runs/${A}/cancel`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}async createAndPoll(A,q,g){let E=await this.create(A,q,g);return await this.poll(E.id,{thread_id:A},g)}createAndStream(A,q,g){return Ig.createAssistantStream(A,this._client.beta.threads.runs,q,g)}async poll(A,q,g){let E=D([g?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":g?.pollIntervalMs?.toString()??void 0}]);while(!0){let{data:F,response:K}=await this.retrieve(A,q,{...g,headers:{...g?.headers,...E}}).withResponse();switch(F.status){case"queued":case"in_progress":case"cancelling":let Z=5000;if(g?.pollIntervalMs)Z=g.pollIntervalMs;else{let j=K.headers.get("openai-poll-after-ms");if(j){let U=parseInt(j);if(!isNaN(U))Z=U}}await aq(Z);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return F}}}stream(A,q,g){return Ig.createAssistantStream(A,this._client.beta.threads.runs,q,g)}submitToolOutputs(A,q,g){let{thread_id:E,...F}=q;return this._client.post(I`/threads/${E}/runs/${A}/submit_tool_outputs`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers]),stream:q.stream??!1})}async submitToolOutputsAndPoll(A,q,g){let E=await this.submitToolOutputs(A,q,g);return await this.poll(E.id,q,g)}submitToolOutputsStream(A,q,g){return Ig.createToolAssistantStream(A,this._client.beta.threads.runs,q,g)}}n6.Steps=EK;class Q6 extends S{constructor(){super(...arguments);this.runs=new n6(this._client),this.messages=new gK(this._client)}create(A={},q){return this._client.post("/threads",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}retrieve(A,q){return this._client.get(I`/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(I`/threads/${A}`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}delete(A,q){return this._client.delete(I`/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}createAndRun(A,q){return this._client.post("/threads/runs",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers]),stream:A.stream??!1})}async createAndRunPoll(A,q){let g=await this.createAndRun(A,q);return await this.runs.poll(g.id,{thread_id:g.thread_id},q)}createAndRunStream(A,q){return Ig.createThreadAssistantStream(A,this._client.beta.threads,q)}}Q6.Runs=n6;Q6.Messages=gK;class Sq extends S{constructor(){super(...arguments);this.realtime=new Z6(this._client),this.chatkit=new j6(this._client),this.assistants=new rF(this._client),this.threads=new Q6(this._client)}}Sq.Realtime=Z6;Sq.ChatKit=j6;Sq.Assistants=rF;Sq.Threads=Q6;class r6 extends S{create(A,q){return this._client.post("/completions",{body:A,...q,stream:A.stream??!1})}}class jK extends S{retrieve(A,q,g){let{container_id:E}=q;return this._client.get(I`/containers/${E}/files/${A}/content`,{...g,headers:D([{Accept:"application/binary"},g?.headers]),__binaryResponse:!0})}}class o6 extends S{constructor(){super(...arguments);this.content=new jK(this._client)}create(A,q,g){return this._client.post(I`/containers/${A}/files`,oA({body:q,...g},this._client))}retrieve(A,q,g){let{container_id:E}=q;return this._client.get(I`/containers/${E}/files/${A}`,g)}list(A,q={},g){return this._client.getAPIList(I`/containers/${A}/files`,EA,{query:q,...g})}delete(A,q,g){let{container_id:E}=q;return this._client.delete(I`/containers/${E}/files/${A}`,{...g,headers:D([{Accept:"*/*"},g?.headers])})}}o6.Content=jK;class O6 extends S{constructor(){super(...arguments);this.files=new o6(this._client)}create(A,q){return this._client.post("/containers",{body:A,...q})}retrieve(A,q){return this._client.get(I`/containers/${A}`,q)}list(A={},q){return this._client.getAPIList("/containers",EA,{query:A,...q})}delete(A,q){return this._client.delete(I`/containers/${A}`,{...q,headers:D([{Accept:"*/*"},q?.headers])})}}O6.Files=o6;class UK extends S{create(A,q,g){let{include:E,...F}=q;return this._client.post(I`/conversations/${A}/items`,{query:{include:E},body:F,...g})}retrieve(A,q,g){let{conversation_id:E,...F}=q;return this._client.get(I`/conversations/${E}/items/${A}`,{query:F,...g})}list(A,q={},g){return this._client.getAPIList(I`/conversations/${A}/items`,Vg,{query:q,...g})}delete(A,q,g){let{conversation_id:E}=q;return this._client.delete(I`/conversations/${E}/items/${A}`,g)}}class J6 extends S{constructor(){super(...arguments);this.items=new UK(this._client)}create(A={},q){return this._client.post("/conversations",{body:A,...q})}retrieve(A,q){return this._client.get(I`/conversations/${A}`,q)}update(A,q,g){return this._client.post(I`/conversations/${A}`,{body:q,...g})}delete(A,q){return this._client.delete(I`/conversations/${A}`,q)}}J6.Items=UK;class e6 extends S{create(A,q){let g=!!A.encoding_format,E=g?A.encoding_format:"base64";if(g)HA(this._client).debug("embeddings/user defined encoding_format:",A.encoding_format);let F=this._client.post("/embeddings",{body:{...A,encoding_format:E},...q});if(g)return F;return HA(this._client).debug("embeddings/decoding base64 embeddings from base64"),F._thenUnwrap((K)=>{if(K&&K.data)K.data.forEach((Z)=>{let j=Z.embedding;Z.embedding=uJ(j)});return K})}}class GK extends S{retrieve(A,q,g){let{eval_id:E,run_id:F}=q;return this._client.get(I`/evals/${E}/runs/${F}/output_items/${A}`,g)}list(A,q,g){let{eval_id:E,...F}=q;return this._client.getAPIList(I`/evals/${E}/runs/${A}/output_items`,EA,{query:F,...g})}}class AE extends S{constructor(){super(...arguments);this.outputItems=new GK(this._client)}create(A,q,g){return this._client.post(I`/evals/${A}/runs`,{body:q,...g})}retrieve(A,q,g){let{eval_id:E}=q;return this._client.get(I`/evals/${E}/runs/${A}`,g)}list(A,q={},g){return this._client.getAPIList(I`/evals/${A}/runs`,EA,{query:q,...g})}delete(A,q,g){let{eval_id:E}=q;return this._client.delete(I`/evals/${E}/runs/${A}`,g)}cancel(A,q,g){let{eval_id:E}=q;return this._client.post(I`/evals/${E}/runs/${A}`,g)}}AE.OutputItems=GK;class M6 extends S{constructor(){super(...arguments);this.runs=new AE(this._client)}create(A,q){return this._client.post("/evals",{body:A,...q})}retrieve(A,q){return this._client.get(I`/evals/${A}`,q)}update(A,q,g){return this._client.post(I`/evals/${A}`,{body:q,...g})}list(A={},q){return this._client.getAPIList("/evals",EA,{query:A,...q})}delete(A,q){return this._client.delete(I`/evals/${A}`,q)}}M6.Runs=AE;class qE extends S{create(A,q){return this._client.post("/files",oA({body:A,...q},this._client))}retrieve(A,q){return this._client.get(I`/files/${A}`,q)}list(A={},q){return this._client.getAPIList("/files",EA,{query:A,...q})}delete(A,q){return this._client.delete(I`/files/${A}`,q)}content(A,q){return this._client.get(I`/files/${A}/content`,{...q,headers:D([{Accept:"application/binary"},q?.headers]),__binaryResponse:!0})}async waitForProcessing(A,{pollInterval:q=5000,maxWait:g=1800000}={}){let E=new Set(["processed","error","deleted"]),F=Date.now(),K=await this.retrieve(A);while(!K.status||!E.has(K.status))if(await aq(q),K=await this.retrieve(A),Date.now()-F>g)throw new q6({message:`Giving up on waiting for file ${A} to finish processing after ${g} milliseconds.`});return K}}class YK extends S{}class QK extends S{run(A,q){return this._client.post("/fine_tuning/alpha/graders/run",{body:A,...q})}validate(A,q){return this._client.post("/fine_tuning/alpha/graders/validate",{body:A,...q})}}class gE extends S{constructor(){super(...arguments);this.graders=new QK(this._client)}}gE.Graders=QK;class OK extends S{create(A,q,g){return this._client.getAPIList(I`/fine_tuning/checkpoints/${A}/permissions`,qg,{body:q,method:"post",...g})}retrieve(A,q={},g){return this._client.get(I`/fine_tuning/checkpoints/${A}/permissions`,{query:q,...g})}delete(A,q,g){let{fine_tuned_model_checkpoint:E}=q;return this._client.delete(I`/fine_tuning/checkpoints/${E}/permissions/${A}`,g)}}class EE extends S{constructor(){super(...arguments);this.permissions=new OK(this._client)}}EE.Permissions=OK;class JK extends S{list(A,q={},g){return this._client.getAPIList(I`/fine_tuning/jobs/${A}/checkpoints`,EA,{query:q,...g})}}class FE extends S{constructor(){super(...arguments);this.checkpoints=new JK(this._client)}create(A,q){return this._client.post("/fine_tuning/jobs",{body:A,...q})}retrieve(A,q){return this._client.get(I`/fine_tuning/jobs/${A}`,q)}list(A={},q){return this._client.getAPIList("/fine_tuning/jobs",EA,{query:A,...q})}cancel(A,q){return this._client.post(I`/fine_tuning/jobs/${A}/cancel`,q)}listEvents(A,q={},g){return this._client.getAPIList(I`/fine_tuning/jobs/${A}/events`,EA,{query:q,...g})}pause(A,q){return this._client.post(I`/fine_tuning/jobs/${A}/pause`,q)}resume(A,q){return this._client.post(I`/fine_tuning/jobs/${A}/resume`,q)}}FE.Checkpoints=JK;class hq extends S{constructor(){super(...arguments);this.methods=new YK(this._client),this.jobs=new FE(this._client),this.checkpoints=new EE(this._client),this.alpha=new gE(this._client)}}hq.Methods=YK;hq.Jobs=FE;hq.Checkpoints=EE;hq.Alpha=gE;class MK extends S{}class _6 extends S{constructor(){super(...arguments);this.graderModels=new MK(this._client)}}_6.GraderModels=MK;class KE extends S{createVariation(A,q){return this._client.post("/images/variations",oA({body:A,...q},this._client))}edit(A,q){return this._client.post("/images/edits",oA({body:A,...q,stream:A.stream??!1},this._client))}generate(A,q){return this._client.post("/images/generations",{body:A,...q,stream:A.stream??!1})}}class ZE extends S{retrieve(A,q){return this._client.get(I`/models/${A}`,q)}list(A){return this._client.getAPIList("/models",qg,A)}delete(A,q){return this._client.delete(I`/models/${A}`,q)}}class jE extends S{create(A,q){return this._client.post("/moderations",{body:A,...q})}}class _K extends S{accept(A,q,g){return this._client.post(I`/realtime/calls/${A}/accept`,{body:q,...g,headers:D([{Accept:"*/*"},g?.headers])})}hangup(A,q){return this._client.post(I`/realtime/calls/${A}/hangup`,{...q,headers:D([{Accept:"*/*"},q?.headers])})}refer(A,q,g){return this._client.post(I`/realtime/calls/${A}/refer`,{body:q,...g,headers:D([{Accept:"*/*"},g?.headers])})}reject(A,q={},g){return this._client.post(I`/realtime/calls/${A}/reject`,{body:q,...g,headers:D([{Accept:"*/*"},g?.headers])})}}class $K extends S{create(A,q){return this._client.post("/realtime/client_secrets",{body:A,...q})}}class ag extends S{constructor(){super(...arguments);this.clientSecrets=new $K(this._client),this.calls=new _K(this._client)}}ag.ClientSecrets=$K;ag.Calls=_K;function eJ(A,q){if(!q||!HH(q))return{...A,output_parsed:null,output:A.output.map((g)=>{if(g.type==="function_call")return{...g,parsed_arguments:null};if(g.type==="message")return{...g,content:g.content.map((E)=>({...E,parsed:null}))};else return g})};return zG(A,q)}function zG(A,q){let g=A.output.map((F)=>{if(F.type==="function_call")return{...F,parsed_arguments:WH(q,F)};if(F.type==="message"){let K=F.content.map((Z)=>{if(Z.type==="output_text")return{...Z,parsed:XH(q,Z.text)};return Z});return{...F,content:K}}return F}),E=Object.assign({},A,{output:g});if(!Object.getOwnPropertyDescriptor(A,"output_text"))Kj(E);return Object.defineProperty(E,"output_parsed",{enumerable:!0,get(){for(let F of E.output){if(F.type!=="message")continue;for(let K of F.content)if(K.type==="output_text"&&K.parsed!==null)return K.parsed}return null}}),E}function XH(A,q){if(A.text?.format?.type!=="json_schema")return null;if("$parseRaw"in A.text?.format)return(A.text?.format).$parseRaw(q);return JSON.parse(q)}function HH(A){if(mF(A.text?.format))return!0;return!1}function LH(A){return A?.$brand==="auto-parseable-tool"}function VH(A,q){return A.find((g)=>g.type==="function"&&g.name===q)}function WH(A,q){let g=VH(A.tools??[],q.name);return{...q,...q,parsed_arguments:LH(g)?g.$parseRaw(q.arguments):g?.strict?JSON.parse(q.arguments):null}}function Kj(A){let q=[];for(let g of A.output){if(g.type!=="message")continue;for(let E of g.content)if(E.type==="output_text")q.push(E.text)}A.output_text=q.join("")}var UE,Zj,Pg,jj,AM,qM,gM,EM;class Uj extends F6{constructor(A){super();UE.add(this),Zj.set(this,void 0),Pg.set(this,void 0),jj.set(this,void 0),i(this,Zj,A,"f")}static createResponse(A,q,g){let E=new Uj(q);return E._run(()=>E._createOrRetrieveResponse(A,q,{...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"stream"}})),E}async _createOrRetrieveResponse(A,q,g){let E=g?.signal;if(E){if(E.aborted)this.controller.abort();E.addEventListener("abort",()=>this.controller.abort())}L(this,UE,"m",AM).call(this);let F,K=null;if("response_id"in q)F=await A.responses.retrieve(q.response_id,{stream:!0},{...g,signal:this.controller.signal,stream:!0}),K=q.starting_after??null;else F=await A.responses.create({...q,stream:!0},{...g,signal:this.controller.signal});this._connected();for await(let Z of F)L(this,UE,"m",qM).call(this,Z,K);if(F.controller.signal?.aborted)throw new TA;return L(this,UE,"m",gM).call(this)}[(Zj=new WeakMap,Pg=new WeakMap,jj=new WeakMap,UE=new WeakSet,AM=function(){if(this.ended)return;i(this,Pg,void 0,"f")},qM=function(q,g){if(this.ended)return;let E=(K,Z)=>{if(g==null||Z.sequence_number>g)this._emit(K,Z)},F=L(this,UE,"m",EM).call(this,q);switch(E("event",q),q.type){case"response.output_text.delta":{let K=F.output[q.output_index];if(!K)throw new f(`missing output at index ${q.output_index}`);if(K.type==="message"){let Z=K.content[q.content_index];if(!Z)throw new f(`missing content at index ${q.content_index}`);if(Z.type!=="output_text")throw new f(`expected content to be 'output_text', got ${Z.type}`);E("response.output_text.delta",{...q,snapshot:Z.text})}break}case"response.function_call_arguments.delta":{let K=F.output[q.output_index];if(!K)throw new f(`missing output at index ${q.output_index}`);if(K.type==="function_call")E("response.function_call_arguments.delta",{...q,snapshot:K.arguments});break}default:E(q.type,q);break}},gM=function(){if(this.ended)throw new f("stream has ended, this shouldn't happen");let q=L(this,Pg,"f");if(!q)throw new f("request ended without sending any events");i(this,Pg,void 0,"f");let g=NH(q,L(this,Zj,"f"));return i(this,jj,g,"f"),g},EM=function(q){let g=L(this,Pg,"f");if(!g){if(q.type!=="response.created")throw new f(`When snapshot hasn't been set yet, expected 'response.created' event, got ${q.type}`);return g=i(this,Pg,q.response,"f"),g}switch(q.type){case"response.output_item.added":{g.output.push(q.item);break}case"response.content_part.added":{let E=g.output[q.output_index];if(!E)throw new f(`missing output at index ${q.output_index}`);let F=E.type,K=q.part;if(F==="message"&&K.type!=="reasoning_text")E.content.push(K);else if(F==="reasoning"&&K.type==="reasoning_text"){if(!E.content)E.content=[];E.content.push(K)}break}case"response.output_text.delta":{let E=g.output[q.output_index];if(!E)throw new f(`missing output at index ${q.output_index}`);if(E.type==="message"){let F=E.content[q.content_index];if(!F)throw new f(`missing content at index ${q.content_index}`);if(F.type!=="output_text")throw new f(`expected content to be 'output_text', got ${F.type}`);F.text+=q.delta}break}case"response.function_call_arguments.delta":{let E=g.output[q.output_index];if(!E)throw new f(`missing output at index ${q.output_index}`);if(E.type==="function_call")E.arguments+=q.delta;break}case"response.reasoning_text.delta":{let E=g.output[q.output_index];if(!E)throw new f(`missing output at index ${q.output_index}`);if(E.type==="reasoning"){let F=E.content?.[q.content_index];if(!F)throw new f(`missing content at index ${q.content_index}`);if(F.type!=="reasoning_text")throw new f(`expected content to be 'reasoning_text', got ${F.type}`);F.text+=q.delta}break}case"response.completed":{i(this,Pg,q.response,"f");break}}return g},Symbol.asyncIterator)](){let A=[],q=[],g=!1;return this.on("event",(E)=>{let F=q.shift();if(F)F.resolve(E);else A.push(E)}),this.on("end",()=>{g=!0;for(let E of q)E.resolve(void 0);q.length=0}),this.on("abort",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),this.on("error",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),{next:async()=>{if(!A.length){if(g)return{value:void 0,done:!0};return new Promise((F,K)=>q.push({resolve:F,reject:K})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:A.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}async finalResponse(){await this.done();let A=L(this,jj,"f");if(!A)throw new f("stream ended without producing a ChatCompletion");return A}}function NH(A,q){return eJ(A,q)}class XK extends S{list(A,q={},g){return this._client.getAPIList(I`/responses/${A}/input_items`,EA,{query:q,...g})}}class HK extends S{count(A={},q){return this._client.post("/responses/input_tokens",{body:A,...q})}}class Rg extends S{constructor(){super(...arguments);this.inputItems=new XK(this._client),this.inputTokens=new HK(this._client)}create(A,q){return this._client.post("/responses",{body:A,...q,stream:A.stream??!1})._thenUnwrap((g)=>{if("object"in g&&g.object==="response")Kj(g);return g})}retrieve(A,q={},g){return this._client.get(I`/responses/${A}`,{query:q,...g,stream:q?.stream??!1})._thenUnwrap((E)=>{if("object"in E&&E.object==="response")Kj(E);return E})}delete(A,q){return this._client.delete(I`/responses/${A}`,{...q,headers:D([{Accept:"*/*"},q?.headers])})}parse(A,q){return this._client.responses.create(A,q)._thenUnwrap((g)=>zG(g,A))}stream(A,q){return Uj.createResponse(this._client,A,q)}cancel(A,q){return this._client.post(I`/responses/${A}/cancel`,q)}compact(A,q){return this._client.post("/responses/compact",{body:A,...q})}}Rg.InputItems=XK;Rg.InputTokens=HK;class LK extends S{create(A,q,g){return this._client.post(I`/uploads/${A}/parts`,oA({body:q,...g},this._client))}}class $6 extends S{constructor(){super(...arguments);this.parts=new LK(this._client)}create(A,q){return this._client.post("/uploads",{body:A,...q})}cancel(A,q){return this._client.post(I`/uploads/${A}/cancel`,q)}complete(A,q,g){return this._client.post(I`/uploads/${A}/complete`,{body:q,...g})}}$6.Parts=LK;var FM=async(A)=>{let q=await Promise.allSettled(A),g=q.filter((F)=>F.status==="rejected");if(g.length){for(let F of g)console.error(F.reason);throw Error(`${g.length} promise(s) failed - see the above errors`)}let E=[];for(let F of q)if(F.status==="fulfilled")E.push(F.value);return E};class VK extends S{create(A,q,g){return this._client.post(I`/vector_stores/${A}/file_batches`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}retrieve(A,q,g){let{vector_store_id:E}=q;return this._client.get(I`/vector_stores/${E}/file_batches/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}cancel(A,q,g){let{vector_store_id:E}=q;return this._client.post(I`/vector_stores/${E}/file_batches/${A}/cancel`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}async createAndPoll(A,q,g){let E=await this.create(A,q);return await this.poll(A,E.id,g)}listFiles(A,q,g){let{vector_store_id:E,...F}=q;return this._client.getAPIList(I`/vector_stores/${E}/file_batches/${A}/files`,EA,{query:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}async poll(A,q,g){let E=D([g?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":g?.pollIntervalMs?.toString()??void 0}]);while(!0){let{data:F,response:K}=await this.retrieve(q,{vector_store_id:A},{...g,headers:E}).withResponse();switch(F.status){case"in_progress":let Z=5000;if(g?.pollIntervalMs)Z=g.pollIntervalMs;else{let j=K.headers.get("openai-poll-after-ms");if(j){let U=parseInt(j);if(!isNaN(U))Z=U}}await aq(Z);break;case"failed":case"cancelled":case"completed":return F}}}async uploadAndPoll(A,{files:q,fileIds:g=[]},E){if(q==null||q.length==0)throw Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let F=E?.maxConcurrency??5,K=Math.min(F,q.length),Z=this._client,j=q.values(),U=[...g];async function O(M){for(let J of M){let $=await Z.files.create({file:J,purpose:"assistants"},E);U.push($.id)}}let Y=Array(K).fill(j).map(O);return await FM(Y),await this.createAndPoll(A,{file_ids:U})}}class WK extends S{create(A,q,g){return this._client.post(I`/vector_stores/${A}/files`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}retrieve(A,q,g){let{vector_store_id:E}=q;return this._client.get(I`/vector_stores/${E}/files/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}update(A,q,g){let{vector_store_id:E,...F}=q;return this._client.post(I`/vector_stores/${E}/files/${A}`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(I`/vector_stores/${A}/files`,EA,{query:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}delete(A,q,g){let{vector_store_id:E}=q;return this._client.delete(I`/vector_stores/${E}/files/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}async createAndPoll(A,q,g){let E=await this.create(A,q,g);return await this.poll(A,E.id,g)}async poll(A,q,g){let E=D([g?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":g?.pollIntervalMs?.toString()??void 0}]);while(!0){let F=await this.retrieve(q,{vector_store_id:A},{...g,headers:E}).withResponse(),K=F.data;switch(K.status){case"in_progress":let Z=5000;if(g?.pollIntervalMs)Z=g.pollIntervalMs;else{let j=F.response.headers.get("openai-poll-after-ms");if(j){let U=parseInt(j);if(!isNaN(U))Z=U}}await aq(Z);break;case"failed":case"completed":return K}}}async upload(A,q,g){let E=await this._client.files.create({file:q,purpose:"assistants"},g);return this.create(A,{file_id:E.id},g)}async uploadAndPoll(A,q,g){let E=await this.upload(A,q,g);return await this.poll(A,E.id,g)}content(A,q,g){let{vector_store_id:E}=q;return this._client.getAPIList(I`/vector_stores/${E}/files/${A}/content`,qg,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}class Sg extends S{constructor(){super(...arguments);this.files=new WK(this._client),this.fileBatches=new VK(this._client)}create(A,q){return this._client.post("/vector_stores",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}retrieve(A,q){return this._client.get(I`/vector_stores/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(I`/vector_stores/${A}`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A={},q){return this._client.getAPIList("/vector_stores",EA,{query:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}delete(A,q){return this._client.delete(I`/vector_stores/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}search(A,q,g){return this._client.getAPIList(I`/vector_stores/${A}/search`,qg,{body:q,method:"post",...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}Sg.Files=WK;Sg.FileBatches=VK;class GE extends S{create(A,q){return this._client.post("/videos",_G({body:A,...q},this._client))}retrieve(A,q){return this._client.get(I`/videos/${A}`,q)}list(A={},q){return this._client.getAPIList("/videos",Vg,{query:A,...q})}delete(A,q){return this._client.delete(I`/videos/${A}`,q)}downloadContent(A,q={},g){return this._client.get(I`/videos/${A}/content`,{query:q,...g,headers:D([{Accept:"application/binary"},g?.headers]),__binaryResponse:!0})}remix(A,q,g){return this._client.post(I`/videos/${A}/remix`,_G({body:q,...g},this._client))}}var YE,KM,Gj;class QE extends S{constructor(){super(...arguments);YE.add(this)}async unwrap(A,q,g=this._client.webhookSecret,E=300){return await this.verifySignature(A,q,g,E),JSON.parse(A)}async verifySignature(A,q,g=this._client.webhookSecret,E=300){if(typeof crypto>"u"||typeof crypto.subtle.importKey!=="function"||typeof crypto.subtle.verify!=="function")throw Error("Webhook signature verification is only supported when the `crypto` global is defined");L(this,YE,"m",KM).call(this,g);let F=D([q]).values,K=L(this,YE,"m",Gj).call(this,F,"webhook-signature"),Z=L(this,YE,"m",Gj).call(this,F,"webhook-timestamp"),j=L(this,YE,"m",Gj).call(this,F,"webhook-id"),U=parseInt(Z,10);if(isNaN(U))throw new eq("Invalid webhook timestamp format");let O=Math.floor(Date.now()/1000);if(O-U>E)throw new eq("Webhook timestamp is too old");if(U>O+E)throw new eq("Webhook timestamp is too new");let Y=K.split(" ").map((_)=>_.startsWith("v1,")?_.substring(3):_),M=g.startsWith("whsec_")?Buffer.from(g.replace("whsec_",""),"base64"):Buffer.from(g,"utf-8"),J=j?`${j}.${Z}.${A}`:`${Z}.${A}`,$=await crypto.subtle.importKey("raw",M,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(let _ of Y)try{let T=Buffer.from(_,"base64");if(await crypto.subtle.verify("HMAC",$,T,new TextEncoder().encode(J)))return}catch{continue}throw new eq("The given webhook signature does not match the expected signature")}}YE=new WeakSet,KM=function(q){if(typeof q!=="string"||q.length===0)throw Error("The webhook secret must either be set using the env var, OPENAI_WEBHOOK_SECRET, on the client class, OpenAI({ webhookSecret: '123' }), or passed to this function")},Gj=function(q,g){if(!q)throw Error("Headers are required");let E=q.get(g);if(E===null||E===void 0)throw Error(`Missing required header: ${g}`);return E};var BG,wG,Yj,ZM;class e{constructor({baseURL:A=Tg("OPENAI_BASE_URL"),apiKey:q=Tg("OPENAI_API_KEY"),organization:g=Tg("OPENAI_ORG_ID")??null,project:E=Tg("OPENAI_PROJECT_ID")??null,webhookSecret:F=Tg("OPENAI_WEBHOOK_SECRET")??null,...K}={}){if(BG.add(this),Yj.set(this,void 0),this.completions=new r6(this),this.chat=new K6(this),this.embeddings=new e6(this),this.files=new qE(this),this.images=new KE(this),this.audio=new Fg(this),this.moderations=new jE(this),this.models=new ZE(this),this.fineTuning=new hq(this),this.graders=new _6(this),this.vectorStores=new Sg(this),this.webhooks=new QE(this),this.beta=new Sq(this),this.batches=new t6(this),this.uploads=new $6(this),this.responses=new Rg(this),this.realtime=new ag(this),this.conversations=new J6(this),this.evals=new M6(this),this.containers=new O6(this),this.videos=new GE(this),q===void 0)throw new f("Missing credentials. Please pass an `apiKey`, or set the `OPENAI_API_KEY` environment variable.");let Z={apiKey:q,organization:g,project:E,webhookSecret:F,...K,baseURL:A||"https://api.openai.com/v1"};if(!Z.dangerouslyAllowBrowser&&UJ())throw new f(`It looks like you're running in a browser-like environment.
|
|
148
|
+
${M}`)}return Z},R=aH(K9);class qE extends h{list(A,q={},g){return this._client.getAPIList(R`/chat/completions/${A}/messages`,EA,{query:q,...g})}}function qK(A){return A!==void 0&&"function"in A&&A.function!==void 0}function gK(A){return A?.$brand==="auto-parseable-response-format"}function M6(A){return A?.$brand==="auto-parseable-tool"}function Z9(A,q){if(!q||!sG(q))return{...A,choices:A.choices.map((g)=>{return U9(g.message.tool_calls),{...g,message:{...g.message,parsed:null,...g.message.tool_calls?{tool_calls:g.message.tool_calls}:void 0}}})};return EK(A,q)}function EK(A,q){let g=A.choices.map((E)=>{if(E.finish_reason==="length")throw new tF;if(E.finish_reason==="content_filter")throw new sF;return U9(E.message.tool_calls),{...E,message:{...E.message,...E.message.tool_calls?{tool_calls:E.message.tool_calls?.map((F)=>wH(q,F))??void 0}:void 0,parsed:E.message.content&&!E.message.refusal?BH(q,E.message.content):null}}});return{...A,choices:g}}function BH(A,q){if(A.response_format?.type!=="json_schema")return null;if(A.response_format?.type==="json_schema"){if("$parseRaw"in A.response_format)return A.response_format.$parseRaw(q);return JSON.parse(q)}return null}function wH(A,q){let g=A.tools?.find((E)=>qK(E)&&E.function?.name===q.function.name);return{...q,function:{...q.function,parsed_arguments:M6(g)?g.$parseRaw(q.function.arguments):g?.function.strict?JSON.parse(q.function.arguments):null}}}function j9(A,q){if(!A||!("tools"in A)||!A.tools)return!1;let g=A.tools?.find((E)=>qK(E)&&E.function?.name===q.function.name);return qK(g)&&(M6(g)||g?.function.strict||!1)}function sG(A){if(gK(A.response_format))return!0;return A.tools?.some((q)=>M6(q)||q.type==="function"&&q.function.strict===!0)??!1}function U9(A){for(let q of A||[])if(q.type!=="function")throw new d(`Currently only \`function\` tool calls are supported; Received \`${q.type}\``)}function G9(A){for(let q of A??[]){if(q.type!=="function")throw new d(`Currently only \`function\` tool types support auto-parsing; Received \`${q.type}\``);if(q.function.strict!==!0)throw new d(`The \`${q.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var gE=(A)=>{return A?.role==="assistant"},nG=(A)=>{return A?.role==="tool"};var rG,Qj,Oj,FK,KK,Jj,ZK,Zg,jK,Mj,_j,EE,Y9;class _6{constructor(){rG.add(this),this.controller=new AbortController,Qj.set(this,void 0),Oj.set(this,()=>{}),FK.set(this,()=>{}),KK.set(this,void 0),Jj.set(this,()=>{}),ZK.set(this,()=>{}),Zg.set(this,{}),jK.set(this,!1),Mj.set(this,!1),_j.set(this,!1),EE.set(this,!1),s(this,Qj,new Promise((A,q)=>{s(this,Oj,A,"f"),s(this,FK,q,"f")}),"f"),s(this,KK,new Promise((A,q)=>{s(this,Jj,A,"f"),s(this,ZK,q,"f")}),"f"),V(this,Qj,"f").catch(()=>{}),V(this,KK,"f").catch(()=>{})}_run(A){setTimeout(()=>{A().then(()=>{this._emitFinal(),this._emit("end")},V(this,rG,"m",Y9).bind(this))},0)}_connected(){if(this.ended)return;V(this,Oj,"f").call(this),this._emit("connect")}get ended(){return V(this,jK,"f")}get errored(){return V(this,Mj,"f")}get aborted(){return V(this,_j,"f")}abort(){this.controller.abort()}on(A,q){return(V(this,Zg,"f")[A]||(V(this,Zg,"f")[A]=[])).push({listener:q}),this}off(A,q){let g=V(this,Zg,"f")[A];if(!g)return this;let E=g.findIndex((F)=>F.listener===q);if(E>=0)g.splice(E,1);return this}once(A,q){return(V(this,Zg,"f")[A]||(V(this,Zg,"f")[A]=[])).push({listener:q,once:!0}),this}emitted(A){return new Promise((q,g)=>{if(s(this,EE,!0,"f"),A!=="error")this.once("error",g);this.once(A,q)})}async done(){s(this,EE,!0,"f"),await V(this,KK,"f")}_emit(A,...q){if(V(this,jK,"f"))return;if(A==="end")s(this,jK,!0,"f"),V(this,Jj,"f").call(this);let g=V(this,Zg,"f")[A];if(g)V(this,Zg,"f")[A]=g.filter((E)=>!E.once),g.forEach(({listener:E})=>E(...q));if(A==="abort"){let E=q[0];if(!V(this,EE,"f")&&!g?.length)Promise.reject(E);V(this,FK,"f").call(this,E),V(this,ZK,"f").call(this,E),this._emit("end");return}if(A==="error"){let E=q[0];if(!V(this,EE,"f")&&!g?.length)Promise.reject(E);V(this,FK,"f").call(this,E),V(this,ZK,"f").call(this,E),this._emit("end")}}_emitFinal(){}}Qj=new WeakMap,Oj=new WeakMap,FK=new WeakMap,KK=new WeakMap,Jj=new WeakMap,ZK=new WeakMap,Zg=new WeakMap,jK=new WeakMap,Mj=new WeakMap,_j=new WeakMap,EE=new WeakMap,rG=new WeakSet,Y9=function A(q){if(s(this,Mj,!0,"f"),q instanceof Error&&q.name==="AbortError")q=new IA;if(q instanceof IA)return s(this,_j,!0,"f"),this._emit("abort",q);if(q instanceof d)return this._emit("error",q);if(q instanceof Error){let g=new d(q.message);return g.cause=q,this._emit("error",g)}return this._emit("error",new d(String(q)))};function Q9(A){return typeof A.parse==="function"}var pA,oG,$j,eG,AY,qY,O9,J9,CH=10;class UK extends _6{constructor(){super(...arguments);pA.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(A){this._chatCompletions.push(A),this._emit("chatCompletion",A);let q=A.choices[0]?.message;if(q)this._addMessage(q);return A}_addMessage(A,q=!0){if(!("content"in A))A.content=null;if(this.messages.push(A),q){if(this._emit("message",A),nG(A)&&A.content)this._emit("functionToolCallResult",A.content);else if(gE(A)&&A.tool_calls){for(let g of A.tool_calls)if(g.type==="function")this._emit("functionToolCall",g.function)}}}async finalChatCompletion(){await this.done();let A=this._chatCompletions[this._chatCompletions.length-1];if(!A)throw new d("stream ended without producing a ChatCompletion");return A}async finalContent(){return await this.done(),V(this,pA,"m",oG).call(this)}async finalMessage(){return await this.done(),V(this,pA,"m",$j).call(this)}async finalFunctionToolCall(){return await this.done(),V(this,pA,"m",eG).call(this)}async finalFunctionToolCallResult(){return await this.done(),V(this,pA,"m",AY).call(this)}async totalUsage(){return await this.done(),V(this,pA,"m",qY).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let A=this._chatCompletions[this._chatCompletions.length-1];if(A)this._emit("finalChatCompletion",A);let q=V(this,pA,"m",$j).call(this);if(q)this._emit("finalMessage",q);let g=V(this,pA,"m",oG).call(this);if(g)this._emit("finalContent",g);let E=V(this,pA,"m",eG).call(this);if(E)this._emit("finalFunctionToolCall",E);let F=V(this,pA,"m",AY).call(this);if(F!=null)this._emit("finalFunctionToolCallResult",F);if(this._chatCompletions.some((K)=>K.usage))this._emit("totalUsage",V(this,pA,"m",qY).call(this))}async _createChatCompletion(A,q,g){let E=g?.signal;if(E){if(E.aborted)this.controller.abort();E.addEventListener("abort",()=>this.controller.abort())}V(this,pA,"m",O9).call(this,q);let F=await A.chat.completions.create({...q,stream:!1},{...g,signal:this.controller.signal});return this._connected(),this._addChatCompletion(EK(F,q))}async _runChatCompletion(A,q,g){for(let E of q.messages)this._addMessage(E,!1);return await this._createChatCompletion(A,q,g)}async _runTools(A,q,g){let{tool_choice:F="auto",stream:K,...Z}=q,j=typeof F!=="string"&&F.type==="function"&&F?.function?.name,{maxChatCompletions:U=CH}=g||{},G=q.tools.map((O)=>{if(M6(O)){if(!O.$callback)throw new d("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:O.$callback,name:O.function.name,description:O.function.description||"",parameters:O.function.parameters,parse:O.$parseRaw,strict:!0}}}return O}),Y={};for(let O of G)if(O.type==="function")Y[O.function.name||O.function.function.name]=O.function;let M="tools"in q?G.map((O)=>O.type==="function"?{type:"function",function:{name:O.function.name||O.function.function.name,parameters:O.function.parameters,description:O.function.description,strict:O.function.strict}}:O):void 0;for(let O of q.messages)this._addMessage(O,!1);for(let O=0;O<U;++O){let _=(await this._createChatCompletion(A,{...Z,tool_choice:F,tools:M,messages:[...this.messages]},g)).choices[0]?.message;if(!_)throw new d("missing message in ChatCompletion response");if(!_.tool_calls?.length)return;for(let x of _.tool_calls){if(x.type!=="function")continue;let N=x.id,{name:L,arguments:P}=x.function,k=Y[L];if(!k){let a=`Invalid tool_call: ${JSON.stringify(L)}. Available options are: ${Object.keys(Y).map((z)=>JSON.stringify(z)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:N,content:a});continue}else if(j&&j!==L){let a=`Invalid tool_call: ${JSON.stringify(L)}. ${JSON.stringify(j)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:N,content:a});continue}let C;try{C=Q9(k)?await k.parse(P):P}catch(a){let z=a instanceof Error?a.message:String(a);this._addMessage({role:"tool",tool_call_id:N,content:z});continue}let i=await k.function(C,this),p=V(this,pA,"m",J9).call(this,i);if(this._addMessage({role:"tool",tool_call_id:N,content:p}),j)return}}return}}pA=new WeakSet,oG=function A(){return V(this,pA,"m",$j).call(this).content??null},$j=function A(){let q=this.messages.length;while(q-- >0){let g=this.messages[q];if(gE(g))return{...g,content:g.content??null,refusal:g.refusal??null}}throw new d("stream ended without producing a ChatCompletionMessage with role=assistant")},eG=function A(){for(let q=this.messages.length-1;q>=0;q--){let g=this.messages[q];if(gE(g)&&g?.tool_calls?.length)return g.tool_calls.filter((E)=>E.type==="function").at(-1)?.function}return},AY=function A(){for(let q=this.messages.length-1;q>=0;q--){let g=this.messages[q];if(nG(g)&&g.content!=null&&typeof g.content==="string"&&this.messages.some((E)=>E.role==="assistant"&&E.tool_calls?.some((F)=>F.type==="function"&&F.id===g.tool_call_id)))return g.content}return},qY=function A(){let q={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage:g}of this._chatCompletions)if(g)q.completion_tokens+=g.completion_tokens,q.prompt_tokens+=g.prompt_tokens,q.total_tokens+=g.total_tokens;return q},O9=function A(q){if(q.n!=null&&q.n>1)throw new d("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},J9=function A(q){return typeof q==="string"?q:q===void 0?"undefined":JSON.stringify(q)};class GK extends UK{static runTools(A,q,g){let E=new GK,F={...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"runTools"}};return E._run(()=>E._runTools(A,q,F)),E}_addMessage(A,q=!0){if(super._addMessage(A,q),gE(A)&&A.content)this._emit("content",A.content)}}var zA={STR:1,NUM:2,ARR:4,OBJ:8,NULL:16,BOOL:32,NAN:64,INFINITY:128,MINUS_INFINITY:256,INF:384,SPECIAL:496,ATOM:499,COLLECTION:12,ALL:511};class M9 extends Error{}class _9 extends Error{}function kH(A,q=zA.ALL){if(typeof A!=="string")throw new TypeError(`expecting str, got ${typeof A}`);if(!A.trim())throw new Error(`${A} is empty`);return DH(A.trim(),q)}var DH=(A,q)=>{let g=A.length,E=0,F=(O)=>{throw new M9(`${O} at position ${E}`)},K=(O)=>{throw new _9(`${O} at position ${E}`)},Z=()=>{if(M(),E>=g)F("Unexpected end of input");if(A[E]==='"')return j();if(A[E]==="{")return U();if(A[E]==="[")return G();if(A.substring(E,E+4)==="null"||zA.NULL&q&&g-E<4&&"null".startsWith(A.substring(E)))return E+=4,null;if(A.substring(E,E+4)==="true"||zA.BOOL&q&&g-E<4&&"true".startsWith(A.substring(E)))return E+=4,!0;if(A.substring(E,E+5)==="false"||zA.BOOL&q&&g-E<5&&"false".startsWith(A.substring(E)))return E+=5,!1;if(A.substring(E,E+8)==="Infinity"||zA.INFINITY&q&&g-E<8&&"Infinity".startsWith(A.substring(E)))return E+=8,1/0;if(A.substring(E,E+9)==="-Infinity"||zA.MINUS_INFINITY&q&&1<g-E&&g-E<9&&"-Infinity".startsWith(A.substring(E)))return E+=9,-1/0;if(A.substring(E,E+3)==="NaN"||zA.NAN&q&&g-E<3&&"NaN".startsWith(A.substring(E)))return E+=3,NaN;return Y()},j=()=>{let O=E,$=!1;E++;while(E<g&&(A[E]!=='"'||$&&A[E-1]==="\\"))$=A[E]==="\\"?!$:!1,E++;if(A.charAt(E)=='"')try{return JSON.parse(A.substring(O,++E-Number($)))}catch(_){K(String(_))}else if(zA.STR&q)try{return JSON.parse(A.substring(O,E-Number($))+'"')}catch(_){return JSON.parse(A.substring(O,A.lastIndexOf("\\"))+'"')}F("Unterminated string literal")},U=()=>{E++,M();let O={};try{while(A[E]!=="}"){if(M(),E>=g&&zA.OBJ&q)return O;let $=j();M(),E++;try{let _=Z();Object.defineProperty(O,$,{value:_,writable:!0,enumerable:!0,configurable:!0})}catch(_){if(zA.OBJ&q)return O;else throw _}if(M(),A[E]===",")E++}}catch($){if(zA.OBJ&q)return O;else F("Expected '}' at end of object")}return E++,O},G=()=>{E++;let O=[];try{while(A[E]!=="]")if(O.push(Z()),M(),A[E]===",")E++}catch($){if(zA.ARR&q)return O;F("Expected ']' at end of array")}return E++,O},Y=()=>{if(E===0){if(A==="-"&&zA.NUM&q)F("Not sure what '-' is");try{return JSON.parse(A)}catch($){if(zA.NUM&q)try{if(A[A.length-1]===".")return JSON.parse(A.substring(0,A.lastIndexOf(".")));return JSON.parse(A.substring(0,A.lastIndexOf("e")))}catch(_){}K(String($))}}let O=E;if(A[E]==="-")E++;while(A[E]&&!",]}".includes(A[E]))E++;if(E==g&&!(zA.NUM&q))F("Unterminated number literal");try{return JSON.parse(A.substring(O,E))}catch($){if(A.substring(O,E)==="-"&&zA.NUM&q)F("Not sure what '-' is");try{return JSON.parse(A.substring(O,A.lastIndexOf("e")))}catch(_){K(String(_))}}},M=()=>{while(E<g&&`
|
|
149
|
+
\r\t`.includes(A[E]))E++};return Z()},gY=(A)=>kH(A,zA.ALL^zA.NUM);var PA,jg,FE,zg,EY,Xj,FY,KY,ZY,Hj,jY,$9;class Bg extends UK{constructor(A){super();PA.add(this),jg.set(this,void 0),FE.set(this,void 0),zg.set(this,void 0),s(this,jg,A,"f"),s(this,FE,[],"f")}get currentChatCompletionSnapshot(){return V(this,zg,"f")}static fromReadableStream(A){let q=new Bg(null);return q._run(()=>q._fromReadableStream(A)),q}static createChatCompletion(A,q,g){let E=new Bg(q);return E._run(()=>E._runChatCompletion(A,{...q,stream:!0},{...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"stream"}})),E}async _createChatCompletion(A,q,g){super._createChatCompletion;let E=g?.signal;if(E){if(E.aborted)this.controller.abort();E.addEventListener("abort",()=>this.controller.abort())}V(this,PA,"m",EY).call(this);let F=await A.chat.completions.create({...q,stream:!0},{...g,signal:this.controller.signal});this._connected();for await(let K of F)V(this,PA,"m",FY).call(this,K);if(F.controller.signal?.aborted)throw new IA;return this._addChatCompletion(V(this,PA,"m",Hj).call(this))}async _fromReadableStream(A,q){let g=q?.signal;if(g){if(g.aborted)this.controller.abort();g.addEventListener("abort",()=>this.controller.abort())}V(this,PA,"m",EY).call(this),this._connected();let E=qq.fromReadableStream(A,this.controller),F;for await(let K of E){if(F&&F!==K.id)this._addChatCompletion(V(this,PA,"m",Hj).call(this));V(this,PA,"m",FY).call(this,K),F=K.id}if(E.controller.signal?.aborted)throw new IA;return this._addChatCompletion(V(this,PA,"m",Hj).call(this))}[(jg=new WeakMap,FE=new WeakMap,zg=new WeakMap,PA=new WeakSet,EY=function A(){if(this.ended)return;s(this,zg,void 0,"f")},Xj=function A(q){let g=V(this,FE,"f")[q.index];if(g)return g;return g={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},V(this,FE,"f")[q.index]=g,g},FY=function A(q){if(this.ended)return;let g=V(this,PA,"m",$9).call(this,q);this._emit("chunk",q,g);for(let E of q.choices){let F=g.choices[E.index];if(E.delta.content!=null&&F.message?.role==="assistant"&&F.message?.content)this._emit("content",E.delta.content,F.message.content),this._emit("content.delta",{delta:E.delta.content,snapshot:F.message.content,parsed:F.message.parsed});if(E.delta.refusal!=null&&F.message?.role==="assistant"&&F.message?.refusal)this._emit("refusal.delta",{delta:E.delta.refusal,snapshot:F.message.refusal});if(E.logprobs?.content!=null&&F.message?.role==="assistant")this._emit("logprobs.content.delta",{content:E.logprobs?.content,snapshot:F.logprobs?.content??[]});if(E.logprobs?.refusal!=null&&F.message?.role==="assistant")this._emit("logprobs.refusal.delta",{refusal:E.logprobs?.refusal,snapshot:F.logprobs?.refusal??[]});let K=V(this,PA,"m",Xj).call(this,F);if(F.finish_reason){if(V(this,PA,"m",ZY).call(this,F),K.current_tool_call_index!=null)V(this,PA,"m",KY).call(this,F,K.current_tool_call_index)}for(let Z of E.delta.tool_calls??[]){if(K.current_tool_call_index!==Z.index){if(V(this,PA,"m",ZY).call(this,F),K.current_tool_call_index!=null)V(this,PA,"m",KY).call(this,F,K.current_tool_call_index)}K.current_tool_call_index=Z.index}for(let Z of E.delta.tool_calls??[]){let j=F.message.tool_calls?.[Z.index];if(!j?.type)continue;if(j?.type==="function")this._emit("tool_calls.function.arguments.delta",{name:j.function?.name,index:Z.index,arguments:j.function.arguments,parsed_arguments:j.function.parsed_arguments,arguments_delta:Z.function?.arguments??""});else H9(j?.type)}}},KY=function A(q,g){if(V(this,PA,"m",Xj).call(this,q).done_tool_calls.has(g))return;let F=q.message.tool_calls?.[g];if(!F)throw new Error("no tool call snapshot");if(!F.type)throw new Error("tool call snapshot missing `type`");if(F.type==="function"){let K=V(this,jg,"f")?.tools?.find((Z)=>qK(Z)&&Z.function.name===F.function.name);this._emit("tool_calls.function.arguments.done",{name:F.function.name,index:g,arguments:F.function.arguments,parsed_arguments:M6(K)?K.$parseRaw(F.function.arguments):K?.function.strict?JSON.parse(F.function.arguments):null})}else H9(F.type)},ZY=function A(q){let g=V(this,PA,"m",Xj).call(this,q);if(q.message.content&&!g.content_done){g.content_done=!0;let E=V(this,PA,"m",jY).call(this);this._emit("content.done",{content:q.message.content,parsed:E?E.$parseRaw(q.message.content):null})}if(q.message.refusal&&!g.refusal_done)g.refusal_done=!0,this._emit("refusal.done",{refusal:q.message.refusal});if(q.logprobs?.content&&!g.logprobs_content_done)g.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:q.logprobs.content});if(q.logprobs?.refusal&&!g.logprobs_refusal_done)g.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:q.logprobs.refusal})},Hj=function A(){if(this.ended)throw new d("stream has ended, this shouldn't happen");let q=V(this,zg,"f");if(!q)throw new d("request ended without sending any chunks");return s(this,zg,void 0,"f"),s(this,FE,[],"f"),yH(q,V(this,jg,"f"))},jY=function A(){let q=V(this,jg,"f")?.response_format;if(gK(q))return q;return null},$9=function A(q){var g,E,F,K;let Z=V(this,zg,"f"),{choices:j,...U}=q;if(!Z)Z=s(this,zg,{...U,choices:[]},"f");else Object.assign(Z,U);for(let{delta:G,finish_reason:Y,index:M,logprobs:O=null,...$}of q.choices){let _=Z.choices[M];if(!_)_=Z.choices[M]={finish_reason:Y,index:M,message:{},logprobs:O,...$};if(O)if(!_.logprobs)_.logprobs=Object.assign({},O);else{let{content:i,refusal:p,...a}=O;if(X9(a),Object.assign(_.logprobs,a),i)(g=_.logprobs).content??(g.content=[]),_.logprobs.content.push(...i);if(p)(E=_.logprobs).refusal??(E.refusal=[]),_.logprobs.refusal.push(...p)}if(Y){if(_.finish_reason=Y,V(this,jg,"f")&&sG(V(this,jg,"f"))){if(Y==="length")throw new tF;if(Y==="content_filter")throw new sF}}if(Object.assign(_,$),!G)continue;let{content:x,refusal:N,function_call:L,role:P,tool_calls:k,...C}=G;if(X9(C),Object.assign(_.message,C),N)_.message.refusal=(_.message.refusal||"")+N;if(P)_.message.role=P;if(L)if(!_.message.function_call)_.message.function_call=L;else{if(L.name)_.message.function_call.name=L.name;if(L.arguments)(F=_.message.function_call).arguments??(F.arguments=""),_.message.function_call.arguments+=L.arguments}if(x){if(_.message.content=(_.message.content||"")+x,!_.message.refusal&&V(this,PA,"m",jY).call(this))_.message.parsed=gY(_.message.content)}if(k){if(!_.message.tool_calls)_.message.tool_calls=[];for(let{index:i,id:p,type:a,function:z,...r}of k){let c=(K=_.message.tool_calls)[i]??(K[i]={});if(Object.assign(c,r),p)c.id=p;if(a)c.type=a;if(z)c.function??(c.function={name:z.name??"",arguments:""});if(z?.name)c.function.name=z.name;if(z?.arguments){if(c.function.arguments+=z.arguments,j9(V(this,jg,"f"),c))c.function.parsed_arguments=gY(c.function.arguments)}}}}return Z},Symbol.asyncIterator)](){let A=[],q=[],g=!1;return this.on("chunk",(E)=>{let F=q.shift();if(F)F.resolve(E);else A.push(E)}),this.on("end",()=>{g=!0;for(let E of q)E.resolve(void 0);q.length=0}),this.on("abort",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),this.on("error",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),{next:async()=>{if(!A.length){if(g)return{value:void 0,done:!0};return new Promise((F,K)=>q.push({resolve:F,reject:K})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:A.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new qq(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function yH(A,q){let{id:g,choices:E,created:F,model:K,system_fingerprint:Z,...j}=A,U={...j,id:g,choices:E.map(({message:G,finish_reason:Y,index:M,logprobs:O,...$})=>{if(!Y)throw new d(`missing finish_reason for choice ${M}`);let{content:_=null,function_call:x,tool_calls:N,...L}=G,P=G.role;if(!P)throw new d(`missing role for choice ${M}`);if(x){let{arguments:k,name:C}=x;if(k==null)throw new d(`missing function_call.arguments for choice ${M}`);if(!C)throw new d(`missing function_call.name for choice ${M}`);return{...$,message:{content:_,function_call:{arguments:k,name:C},role:P,refusal:G.refusal??null},finish_reason:Y,index:M,logprobs:O}}if(N)return{...$,index:M,finish_reason:Y,logprobs:O,message:{...L,role:P,content:_,refusal:G.refusal??null,tool_calls:N.map((k,C)=>{let{function:i,type:p,id:a,...z}=k,{arguments:r,name:c,...gA}=i||{};if(a==null)throw new d(`missing choices[${M}].tool_calls[${C}].id
|
|
150
|
+
${Lj(A)}`);if(p==null)throw new d(`missing choices[${M}].tool_calls[${C}].type
|
|
151
|
+
${Lj(A)}`);if(c==null)throw new d(`missing choices[${M}].tool_calls[${C}].function.name
|
|
152
|
+
${Lj(A)}`);if(r==null)throw new d(`missing choices[${M}].tool_calls[${C}].function.arguments
|
|
153
|
+
${Lj(A)}`);return{...z,id:a,type:p,function:{...gA,name:c,arguments:r}}})}};return{...$,message:{...L,content:_,role:P,refusal:G.refusal??null},finish_reason:Y,index:M,logprobs:O}}),created:F,model:K,object:"chat.completion",...Z?{system_fingerprint:Z}:{}};return Z9(U,q)}function Lj(A){return JSON.stringify(A)}function X9(A){return}function H9(A){}class KE extends Bg{static fromReadableStream(A){let q=new KE(null);return q._run(()=>q._fromReadableStream(A)),q}static runTools(A,q,g){let E=new KE(q),F={...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"runTools"}};return E._run(()=>E._runTools(A,q,F)),E}}class wg extends h{constructor(){super(...arguments);this.messages=new qE(this._client)}create(A,q){return this._client.post("/chat/completions",{body:A,...q,stream:A.stream??!1})}retrieve(A,q){return this._client.get(R`/chat/completions/${A}`,q)}update(A,q,g){return this._client.post(R`/chat/completions/${A}`,{body:q,...g})}list(A={},q){return this._client.getAPIList("/chat/completions",EA,{query:A,...q})}delete(A,q){return this._client.delete(R`/chat/completions/${A}`,q)}parse(A,q){return G9(A.tools),this._client.chat.completions.create(A,{...q,headers:{...q?.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap((g)=>EK(g,A))}runTools(A,q){if(A.stream)return KE.runTools(this._client,A,q);return GK.runTools(this._client,A,q)}stream(A,q){return Bg.createChatCompletion(this._client,A,q)}}wg.Messages=qE;class $6 extends h{constructor(){super(...arguments);this.completions=new wg(this._client)}}$6.Completions=wg;var L9=Symbol("brand.privateNullableHeaders");function*vH(A){if(!A)return;if(L9 in A){let{values:E,nulls:F}=A;yield*E.entries();for(let K of F)yield[K,null];return}let q=!1,g;if(A instanceof Headers)g=A.entries();else if(zG(A))g=A;else q=!0,g=Object.entries(A??{});for(let E of g){let F=E[0];if(typeof F!=="string")throw new TypeError("expected header name to be a string");let K=zG(E[1])?E[1]:[E[1]],Z=!1;for(let j of K){if(j===void 0)continue;if(q&&!Z)Z=!0,yield[F,null];yield[F,j]}}}var D=(A)=>{let q=new Headers,g=new Set;for(let E of A){let F=new Set;for(let[K,Z]of vH(E)){let j=K.toLowerCase();if(!F.has(j))q.delete(K),F.add(j);if(Z===null)q.delete(K),g.add(j);else q.append(K,Z),g.delete(j)}}return{[L9]:!0,values:q,nulls:g}};class YK extends h{create(A,q){return this._client.post("/audio/speech",{body:A,...q,headers:D([{Accept:"application/octet-stream"},q?.headers]),__binaryResponse:!0})}}class QK extends h{create(A,q){return this._client.post("/audio/transcriptions",gq({body:A,...q,stream:A.stream??!1,__metadata:{model:A.model}},this._client))}}class OK extends h{create(A,q){return this._client.post("/audio/translations",gq({body:A,...q,__metadata:{model:A.model}},this._client))}}class Ug extends h{constructor(){super(...arguments);this.transcriptions=new QK(this._client),this.translations=new OK(this._client),this.speech=new YK(this._client)}}Ug.Transcriptions=QK;Ug.Translations=OK;Ug.Speech=YK;class ZE extends h{create(A,q){return this._client.post("/batches",{body:A,...q})}retrieve(A,q){return this._client.get(R`/batches/${A}`,q)}list(A={},q){return this._client.getAPIList("/batches",EA,{query:A,...q})}cancel(A,q){return this._client.post(R`/batches/${A}/cancel`,q)}}class JK extends h{create(A,q){return this._client.post("/assistants",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}retrieve(A,q){return this._client.get(R`/assistants/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(R`/assistants/${A}`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A={},q){return this._client.getAPIList("/assistants",EA,{query:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}delete(A,q){return this._client.delete(R`/assistants/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class MK extends h{create(A,q){return this._client.post("/realtime/sessions",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class _K extends h{create(A,q){return this._client.post("/realtime/transcription_sessions",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}}class X6 extends h{constructor(){super(...arguments);this.sessions=new MK(this._client),this.transcriptionSessions=new _K(this._client)}}X6.Sessions=MK;X6.TranscriptionSessions=_K;class $K extends h{create(A,q){return this._client.post("/chatkit/sessions",{body:A,...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}cancel(A,q){return this._client.post(R`/chatkit/sessions/${A}/cancel`,{...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}}class XK extends h{retrieve(A,q){return this._client.get(R`/chatkit/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}list(A={},q){return this._client.getAPIList("/chatkit/threads",hg,{query:A,...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}delete(A,q){return this._client.delete(R`/chatkit/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},q?.headers])})}listItems(A,q={},g){return this._client.getAPIList(R`/chatkit/threads/${A}/items`,hg,{query:q,...g,headers:D([{"OpenAI-Beta":"chatkit_beta=v1"},g?.headers])})}}class H6 extends h{constructor(){super(...arguments);this.sessions=new $K(this._client),this.threads=new XK(this._client)}}H6.Sessions=$K;H6.Threads=XK;class HK extends h{create(A,q,g){return this._client.post(R`/threads/${A}/messages`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}retrieve(A,q,g){let{thread_id:E}=q;return this._client.get(R`/threads/${E}/messages/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}update(A,q,g){let{thread_id:E,...F}=q;return this._client.post(R`/threads/${E}/messages/${A}`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(R`/threads/${A}/messages`,EA,{query:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}delete(A,q,g){let{thread_id:E}=q;return this._client.delete(R`/threads/${E}/messages/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}class LK extends h{retrieve(A,q,g){let{thread_id:E,run_id:F,...K}=q;return this._client.get(R`/threads/${E}/runs/${F}/steps/${A}`,{query:K,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q,g){let{thread_id:E,...F}=q;return this._client.getAPIList(R`/threads/${E}/runs/${A}/steps`,EA,{query:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}var V9=(A)=>{if(typeof Buffer!=="undefined"){let q=Buffer.from(A,"base64");return Array.from(new Float32Array(q.buffer,q.byteOffset,q.length/Float32Array.BYTES_PER_ELEMENT))}else{let q=atob(A),g=q.length,E=new Uint8Array(g);for(let F=0;F<g;F++)E[F]=q.charCodeAt(F);return Array.from(new Float32Array(E.buffer))}};var Cg=(A)=>{if(typeof globalThis.process!=="undefined")return globalThis.process.env?.[A]?.trim()??void 0;if(typeof globalThis.Deno!=="undefined")return globalThis.Deno.env?.get?.(A)?.trim();return};var CA,V6,UY,Bq,Vj,Nq,W6,jE,L6,Tj,Eq,Wj,Nj,NK,VK,WK,W9,N9,T9,I9,x9,P9,R9;class kg extends _6{constructor(){super(...arguments);CA.add(this),UY.set(this,[]),Bq.set(this,{}),Vj.set(this,{}),Nq.set(this,void 0),W6.set(this,void 0),jE.set(this,void 0),L6.set(this,void 0),Tj.set(this,void 0),Eq.set(this,void 0),Wj.set(this,void 0),Nj.set(this,void 0),NK.set(this,void 0)}[(UY=new WeakMap,Bq=new WeakMap,Vj=new WeakMap,Nq=new WeakMap,W6=new WeakMap,jE=new WeakMap,L6=new WeakMap,Tj=new WeakMap,Eq=new WeakMap,Wj=new WeakMap,Nj=new WeakMap,NK=new WeakMap,CA=new WeakSet,Symbol.asyncIterator)](){let A=[],q=[],g=!1;return this.on("event",(E)=>{let F=q.shift();if(F)F.resolve(E);else A.push(E)}),this.on("end",()=>{g=!0;for(let E of q)E.resolve(void 0);q.length=0}),this.on("abort",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),this.on("error",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),{next:async()=>{if(!A.length){if(g)return{value:void 0,done:!0};return new Promise((F,K)=>q.push({resolve:F,reject:K})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:A.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}static fromReadableStream(A){let q=new V6;return q._run(()=>q._fromReadableStream(A)),q}async _fromReadableStream(A,q){let g=q?.signal;if(g){if(g.aborted)this.controller.abort();g.addEventListener("abort",()=>this.controller.abort())}this._connected();let E=qq.fromReadableStream(A,this.controller);for await(let F of E)V(this,CA,"m",VK).call(this,F);if(E.controller.signal?.aborted)throw new IA;return this._addRun(V(this,CA,"m",WK).call(this))}toReadableStream(){return new qq(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(A,q,g,E){let F=new V6;return F._run(()=>F._runToolAssistantStream(A,q,g,{...E,headers:{...E?.headers,"X-Stainless-Helper-Method":"stream"}})),F}async _createToolAssistantStream(A,q,g,E){let F=E?.signal;if(F){if(F.aborted)this.controller.abort();F.addEventListener("abort",()=>this.controller.abort())}let K={...g,stream:!0},Z=await A.submitToolOutputs(q,K,{...E,signal:this.controller.signal});this._connected();for await(let j of Z)V(this,CA,"m",VK).call(this,j);if(Z.controller.signal?.aborted)throw new IA;return this._addRun(V(this,CA,"m",WK).call(this))}static createThreadAssistantStream(A,q,g){let E=new V6;return E._run(()=>E._threadAssistantStream(A,q,{...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"stream"}})),E}static createAssistantStream(A,q,g,E){let F=new V6;return F._run(()=>F._runAssistantStream(A,q,g,{...E,headers:{...E?.headers,"X-Stainless-Helper-Method":"stream"}})),F}currentEvent(){return V(this,Wj,"f")}currentRun(){return V(this,Nj,"f")}currentMessageSnapshot(){return V(this,Nq,"f")}currentRunStepSnapshot(){return V(this,NK,"f")}async finalRunSteps(){return await this.done(),Object.values(V(this,Bq,"f"))}async finalMessages(){return await this.done(),Object.values(V(this,Vj,"f"))}async finalRun(){if(await this.done(),!V(this,W6,"f"))throw Error("Final run was not received.");return V(this,W6,"f")}async _createThreadAssistantStream(A,q,g){let E=g?.signal;if(E){if(E.aborted)this.controller.abort();E.addEventListener("abort",()=>this.controller.abort())}let F={...q,stream:!0},K=await A.createAndRun(F,{...g,signal:this.controller.signal});this._connected();for await(let Z of K)V(this,CA,"m",VK).call(this,Z);if(K.controller.signal?.aborted)throw new IA;return this._addRun(V(this,CA,"m",WK).call(this))}async _createAssistantStream(A,q,g,E){let F=E?.signal;if(F){if(F.aborted)this.controller.abort();F.addEventListener("abort",()=>this.controller.abort())}let K={...g,stream:!0},Z=await A.create(q,K,{...E,signal:this.controller.signal});this._connected();for await(let j of Z)V(this,CA,"m",VK).call(this,j);if(Z.controller.signal?.aborted)throw new IA;return this._addRun(V(this,CA,"m",WK).call(this))}static accumulateDelta(A,q){for(let[g,E]of Object.entries(q)){if(!A.hasOwnProperty(g)){A[g]=E;continue}let F=A[g];if(F===null||F===void 0){A[g]=E;continue}if(g==="index"||g==="type"){A[g]=E;continue}if(typeof F==="string"&&typeof E==="string")F+=E;else if(typeof F==="number"&&typeof E==="number")F+=E;else if(nF(F)&&nF(E))F=this.accumulateDelta(F,E);else if(Array.isArray(F)&&Array.isArray(E)){if(F.every((K)=>typeof K==="string"||typeof K==="number")){F.push(...E);continue}for(let K of E){if(!nF(K))throw new Error(`Expected array delta entry to be an object but got: ${K}`);let Z=K.index;if(Z==null)throw console.error(K),new Error("Expected array delta entry to have an `index` property");if(typeof Z!=="number")throw new Error(`Expected array delta entry \`index\` property to be a number but got ${Z}`);let j=F[Z];if(j==null)F.push(K);else F[Z]=this.accumulateDelta(j,K)}continue}else throw Error(`Unhandled record type: ${g}, deltaValue: ${E}, accValue: ${F}`);A[g]=F}return A}_addRun(A){return A}async _threadAssistantStream(A,q,g){return await this._createThreadAssistantStream(q,A,g)}async _runAssistantStream(A,q,g,E){return await this._createAssistantStream(q,A,g,E)}async _runToolAssistantStream(A,q,g,E){return await this._createToolAssistantStream(q,A,g,E)}}V6=kg,VK=function A(q){if(this.ended)return;switch(s(this,Wj,q,"f"),V(this,CA,"m",T9).call(this,q),q.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":V(this,CA,"m",R9).call(this,q);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":V(this,CA,"m",N9).call(this,q);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":V(this,CA,"m",W9).call(this,q);break;case"error":throw new Error("Encountered an error event in event processing - errors should be processed earlier");default:oH(q)}},WK=function A(){if(this.ended)throw new d("stream has ended, this shouldn't happen");if(!V(this,W6,"f"))throw Error("Final run has not been received");return V(this,W6,"f")},W9=function A(q){let[g,E]=V(this,CA,"m",x9).call(this,q,V(this,Nq,"f"));s(this,Nq,g,"f"),V(this,Vj,"f")[g.id]=g;for(let F of E){let K=g.content[F.index];if(K?.type=="text")this._emit("textCreated",K.text)}switch(q.event){case"thread.message.created":this._emit("messageCreated",q.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",q.data.delta,g),q.data.delta.content)for(let F of q.data.delta.content){if(F.type=="text"&&F.text){let K=F.text,Z=g.content[F.index];if(Z&&Z.type=="text")this._emit("textDelta",K,Z.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(F.index!=V(this,jE,"f")){if(V(this,L6,"f"))switch(V(this,L6,"f").type){case"text":this._emit("textDone",V(this,L6,"f").text,V(this,Nq,"f"));break;case"image_file":this._emit("imageFileDone",V(this,L6,"f").image_file,V(this,Nq,"f"));break}s(this,jE,F.index,"f")}s(this,L6,g.content[F.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(V(this,jE,"f")!==void 0){let F=q.data.content[V(this,jE,"f")];if(F)switch(F.type){case"image_file":this._emit("imageFileDone",F.image_file,V(this,Nq,"f"));break;case"text":this._emit("textDone",F.text,V(this,Nq,"f"));break}}if(V(this,Nq,"f"))this._emit("messageDone",q.data);s(this,Nq,void 0,"f")}},N9=function A(q){let g=V(this,CA,"m",I9).call(this,q);switch(s(this,NK,g,"f"),q.event){case"thread.run.step.created":this._emit("runStepCreated",q.data);break;case"thread.run.step.delta":let E=q.data.delta;if(E.step_details&&E.step_details.type=="tool_calls"&&E.step_details.tool_calls&&g.step_details.type=="tool_calls")for(let K of E.step_details.tool_calls)if(K.index==V(this,Tj,"f"))this._emit("toolCallDelta",K,g.step_details.tool_calls[K.index]);else{if(V(this,Eq,"f"))this._emit("toolCallDone",V(this,Eq,"f"));if(s(this,Tj,K.index,"f"),s(this,Eq,g.step_details.tool_calls[K.index],"f"),V(this,Eq,"f"))this._emit("toolCallCreated",V(this,Eq,"f"))}this._emit("runStepDelta",q.data.delta,g);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":if(s(this,NK,void 0,"f"),q.data.step_details.type=="tool_calls"){if(V(this,Eq,"f"))this._emit("toolCallDone",V(this,Eq,"f")),s(this,Eq,void 0,"f")}this._emit("runStepDone",q.data,g);break;case"thread.run.step.in_progress":break}},T9=function A(q){V(this,UY,"f").push(q),this._emit("event",q)},I9=function A(q){switch(q.event){case"thread.run.step.created":return V(this,Bq,"f")[q.data.id]=q.data,q.data;case"thread.run.step.delta":let g=V(this,Bq,"f")[q.data.id];if(!g)throw Error("Received a RunStepDelta before creation of a snapshot");let E=q.data;if(E.delta){let F=V6.accumulateDelta(g,E.delta);V(this,Bq,"f")[q.data.id]=F}return V(this,Bq,"f")[q.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":V(this,Bq,"f")[q.data.id]=q.data;break}if(V(this,Bq,"f")[q.data.id])return V(this,Bq,"f")[q.data.id];throw new Error("No snapshot available")},x9=function A(q,g){let E=[];switch(q.event){case"thread.message.created":return[q.data,E];case"thread.message.delta":if(!g)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let F=q.data;if(F.delta.content)for(let K of F.delta.content)if(K.index in g.content){let Z=g.content[K.index];g.content[K.index]=V(this,CA,"m",P9).call(this,K,Z)}else g.content[K.index]=K,E.push(K);return[g,E];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(g)return[g,E];else throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},P9=function A(q,g){return V6.accumulateDelta(g,q)},R9=function A(q){switch(s(this,Nj,q.data,"f"),q.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":case"thread.run.incomplete":if(s(this,W6,q.data,"f"),V(this,Eq,"f"))this._emit("toolCallDone",V(this,Eq,"f")),s(this,Eq,void 0,"f");break;case"thread.run.cancelling":break}};function oH(A){}class UE extends h{constructor(){super(...arguments);this.steps=new LK(this._client)}create(A,q,g){let{include:E,...F}=q;return this._client.post(R`/threads/${A}/runs`,{query:{include:E},body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers]),stream:q.stream??!1})}retrieve(A,q,g){let{thread_id:E}=q;return this._client.get(R`/threads/${E}/runs/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}update(A,q,g){let{thread_id:E,...F}=q;return this._client.post(R`/threads/${E}/runs/${A}`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(R`/threads/${A}/runs`,EA,{query:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}cancel(A,q,g){let{thread_id:E}=q;return this._client.post(R`/threads/${E}/runs/${A}/cancel`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}async createAndPoll(A,q,g){let E=await this.create(A,q,g);return await this.poll(E.id,{thread_id:A},g)}createAndStream(A,q,g){return kg.createAssistantStream(A,this._client.beta.threads.runs,q,g)}async poll(A,q,g){let E=D([g?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":g?.pollIntervalMs?.toString()??void 0}]);while(!0){let{data:F,response:K}=await this.retrieve(A,q,{...g,headers:{...g?.headers,...E}}).withResponse();switch(F.status){case"queued":case"in_progress":case"cancelling":let Z=5000;if(g?.pollIntervalMs)Z=g.pollIntervalMs;else{let j=K.headers.get("openai-poll-after-ms");if(j){let U=parseInt(j);if(!isNaN(U))Z=U}}await hq(Z);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return F}}}stream(A,q,g){return kg.createAssistantStream(A,this._client.beta.threads.runs,q,g)}submitToolOutputs(A,q,g){let{thread_id:E,...F}=q;return this._client.post(R`/threads/${E}/runs/${A}/submit_tool_outputs`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers]),stream:q.stream??!1})}async submitToolOutputsAndPoll(A,q,g){let E=await this.submitToolOutputs(A,q,g);return await this.poll(E.id,q,g)}submitToolOutputsStream(A,q,g){return kg.createToolAssistantStream(A,this._client.beta.threads.runs,q,g)}}UE.Steps=LK;class N6 extends h{constructor(){super(...arguments);this.runs=new UE(this._client),this.messages=new HK(this._client)}create(A={},q){return this._client.post("/threads",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}retrieve(A,q){return this._client.get(R`/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(R`/threads/${A}`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}delete(A,q){return this._client.delete(R`/threads/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}createAndRun(A,q){return this._client.post("/threads/runs",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers]),stream:A.stream??!1})}async createAndRunPoll(A,q){let g=await this.createAndRun(A,q);return await this.runs.poll(g.id,{thread_id:g.thread_id},q)}createAndRunStream(A,q){return kg.createThreadAssistantStream(A,this._client.beta.threads,q)}}N6.Runs=UE;N6.Messages=HK;class wq extends h{constructor(){super(...arguments);this.realtime=new X6(this._client),this.chatkit=new H6(this._client),this.assistants=new JK(this._client),this.threads=new N6(this._client)}}wq.Realtime=X6;wq.ChatKit=H6;wq.Assistants=JK;wq.Threads=N6;class GE extends h{create(A,q){return this._client.post("/completions",{body:A,...q,stream:A.stream??!1})}}class TK extends h{retrieve(A,q,g){let{container_id:E}=q;return this._client.get(R`/containers/${E}/files/${A}/content`,{...g,headers:D([{Accept:"application/binary"},g?.headers]),__binaryResponse:!0})}}class YE extends h{constructor(){super(...arguments);this.content=new TK(this._client)}create(A,q,g){return this._client.post(R`/containers/${A}/files`,gq({body:q,...g},this._client))}retrieve(A,q,g){let{container_id:E}=q;return this._client.get(R`/containers/${E}/files/${A}`,g)}list(A,q={},g){return this._client.getAPIList(R`/containers/${A}/files`,EA,{query:q,...g})}delete(A,q,g){let{container_id:E}=q;return this._client.delete(R`/containers/${E}/files/${A}`,{...g,headers:D([{Accept:"*/*"},g?.headers])})}}YE.Content=TK;class T6 extends h{constructor(){super(...arguments);this.files=new YE(this._client)}create(A,q){return this._client.post("/containers",{body:A,...q})}retrieve(A,q){return this._client.get(R`/containers/${A}`,q)}list(A={},q){return this._client.getAPIList("/containers",EA,{query:A,...q})}delete(A,q){return this._client.delete(R`/containers/${A}`,{...q,headers:D([{Accept:"*/*"},q?.headers])})}}T6.Files=YE;class IK extends h{create(A,q,g){let{include:E,...F}=q;return this._client.post(R`/conversations/${A}/items`,{query:{include:E},body:F,...g})}retrieve(A,q,g){let{conversation_id:E,...F}=q;return this._client.get(R`/conversations/${E}/items/${A}`,{query:F,...g})}list(A,q={},g){return this._client.getAPIList(R`/conversations/${A}/items`,hg,{query:q,...g})}delete(A,q,g){let{conversation_id:E}=q;return this._client.delete(R`/conversations/${E}/items/${A}`,g)}}class I6 extends h{constructor(){super(...arguments);this.items=new IK(this._client)}create(A={},q){return this._client.post("/conversations",{body:A,...q})}retrieve(A,q){return this._client.get(R`/conversations/${A}`,q)}update(A,q,g){return this._client.post(R`/conversations/${A}`,{body:q,...g})}delete(A,q){return this._client.delete(R`/conversations/${A}`,q)}}I6.Items=IK;class QE extends h{create(A,q){let g=!!A.encoding_format,E=g?A.encoding_format:"base64";if(g)HA(this._client).debug("embeddings/user defined encoding_format:",A.encoding_format);let F=this._client.post("/embeddings",{body:{...A,encoding_format:E},...q});if(g)return F;return HA(this._client).debug("embeddings/decoding base64 embeddings from base64"),F._thenUnwrap((K)=>{if(K&&K.data)K.data.forEach((Z)=>{let j=Z.embedding;Z.embedding=V9(j)});return K})}}class xK extends h{retrieve(A,q,g){let{eval_id:E,run_id:F}=q;return this._client.get(R`/evals/${E}/runs/${F}/output_items/${A}`,g)}list(A,q,g){let{eval_id:E,...F}=q;return this._client.getAPIList(R`/evals/${E}/runs/${A}/output_items`,EA,{query:F,...g})}}class OE extends h{constructor(){super(...arguments);this.outputItems=new xK(this._client)}create(A,q,g){return this._client.post(R`/evals/${A}/runs`,{body:q,...g})}retrieve(A,q,g){let{eval_id:E}=q;return this._client.get(R`/evals/${E}/runs/${A}`,g)}list(A,q={},g){return this._client.getAPIList(R`/evals/${A}/runs`,EA,{query:q,...g})}delete(A,q,g){let{eval_id:E}=q;return this._client.delete(R`/evals/${E}/runs/${A}`,g)}cancel(A,q,g){let{eval_id:E}=q;return this._client.post(R`/evals/${E}/runs/${A}`,g)}}OE.OutputItems=xK;class x6 extends h{constructor(){super(...arguments);this.runs=new OE(this._client)}create(A,q){return this._client.post("/evals",{body:A,...q})}retrieve(A,q){return this._client.get(R`/evals/${A}`,q)}update(A,q,g){return this._client.post(R`/evals/${A}`,{body:q,...g})}list(A={},q){return this._client.getAPIList("/evals",EA,{query:A,...q})}delete(A,q){return this._client.delete(R`/evals/${A}`,q)}}x6.Runs=OE;class JE extends h{create(A,q){return this._client.post("/files",gq({body:A,...q},this._client))}retrieve(A,q){return this._client.get(R`/files/${A}`,q)}list(A={},q){return this._client.getAPIList("/files",EA,{query:A,...q})}delete(A,q){return this._client.delete(R`/files/${A}`,q)}content(A,q){return this._client.get(R`/files/${A}/content`,{...q,headers:D([{Accept:"application/binary"},q?.headers]),__binaryResponse:!0})}async waitForProcessing(A,{pollInterval:q=5000,maxWait:g=1800000}={}){let E=new Set(["processed","error","deleted"]),F=Date.now(),K=await this.retrieve(A);while(!K.status||!E.has(K.status))if(await hq(q),K=await this.retrieve(A),Date.now()-F>g)throw new O6({message:`Giving up on waiting for file ${A} to finish processing after ${g} milliseconds.`});return K}}class PK extends h{}class RK extends h{run(A,q){return this._client.post("/fine_tuning/alpha/graders/run",{body:A,...q})}validate(A,q){return this._client.post("/fine_tuning/alpha/graders/validate",{body:A,...q})}}class ME extends h{constructor(){super(...arguments);this.graders=new RK(this._client)}}ME.Graders=RK;class SK extends h{create(A,q,g){return this._client.getAPIList(R`/fine_tuning/checkpoints/${A}/permissions`,Kg,{body:q,method:"post",...g})}retrieve(A,q={},g){return this._client.get(R`/fine_tuning/checkpoints/${A}/permissions`,{query:q,...g})}delete(A,q,g){let{fine_tuned_model_checkpoint:E}=q;return this._client.delete(R`/fine_tuning/checkpoints/${E}/permissions/${A}`,g)}}class _E extends h{constructor(){super(...arguments);this.permissions=new SK(this._client)}}_E.Permissions=SK;class aK extends h{list(A,q={},g){return this._client.getAPIList(R`/fine_tuning/jobs/${A}/checkpoints`,EA,{query:q,...g})}}class $E extends h{constructor(){super(...arguments);this.checkpoints=new aK(this._client)}create(A,q){return this._client.post("/fine_tuning/jobs",{body:A,...q})}retrieve(A,q){return this._client.get(R`/fine_tuning/jobs/${A}`,q)}list(A={},q){return this._client.getAPIList("/fine_tuning/jobs",EA,{query:A,...q})}cancel(A,q){return this._client.post(R`/fine_tuning/jobs/${A}/cancel`,q)}listEvents(A,q={},g){return this._client.getAPIList(R`/fine_tuning/jobs/${A}/events`,EA,{query:q,...g})}pause(A,q){return this._client.post(R`/fine_tuning/jobs/${A}/pause`,q)}resume(A,q){return this._client.post(R`/fine_tuning/jobs/${A}/resume`,q)}}$E.Checkpoints=aK;class Cq extends h{constructor(){super(...arguments);this.methods=new PK(this._client),this.jobs=new $E(this._client),this.checkpoints=new _E(this._client),this.alpha=new ME(this._client)}}Cq.Methods=PK;Cq.Jobs=$E;Cq.Checkpoints=_E;Cq.Alpha=ME;class hK extends h{}class P6 extends h{constructor(){super(...arguments);this.graderModels=new hK(this._client)}}P6.GraderModels=hK;class XE extends h{createVariation(A,q){return this._client.post("/images/variations",gq({body:A,...q},this._client))}edit(A,q){return this._client.post("/images/edits",gq({body:A,...q,stream:A.stream??!1},this._client))}generate(A,q){return this._client.post("/images/generations",{body:A,...q,stream:A.stream??!1})}}class HE extends h{retrieve(A,q){return this._client.get(R`/models/${A}`,q)}list(A){return this._client.getAPIList("/models",Kg,A)}delete(A,q){return this._client.delete(R`/models/${A}`,q)}}class LE extends h{create(A,q){return this._client.post("/moderations",{body:A,...q})}}class zK extends h{accept(A,q,g){return this._client.post(R`/realtime/calls/${A}/accept`,{body:q,...g,headers:D([{Accept:"*/*"},g?.headers])})}hangup(A,q){return this._client.post(R`/realtime/calls/${A}/hangup`,{...q,headers:D([{Accept:"*/*"},q?.headers])})}refer(A,q,g){return this._client.post(R`/realtime/calls/${A}/refer`,{body:q,...g,headers:D([{Accept:"*/*"},g?.headers])})}reject(A,q={},g){return this._client.post(R`/realtime/calls/${A}/reject`,{body:q,...g,headers:D([{Accept:"*/*"},g?.headers])})}}class BK extends h{create(A,q){return this._client.post("/realtime/client_secrets",{body:A,...q})}}class Dg extends h{constructor(){super(...arguments);this.clientSecrets=new BK(this._client),this.calls=new zK(this._client)}}Dg.ClientSecrets=BK;Dg.Calls=zK;function S9(A,q){if(!q||!X1(q))return{...A,output_parsed:null,output:A.output.map((g)=>{if(g.type==="function_call")return{...g,parsed_arguments:null};if(g.type==="message")return{...g,content:g.content.map((E)=>({...E,parsed:null}))};else return g})};return GY(A,q)}function GY(A,q){let g=A.output.map((F)=>{if(F.type==="function_call")return{...F,parsed_arguments:V1(q,F)};if(F.type==="message"){let K=F.content.map((Z)=>{if(Z.type==="output_text")return{...Z,parsed:$1(q,Z.text)};return Z});return{...F,content:K}}return F}),E=Object.assign({},A,{output:g});if(!Object.getOwnPropertyDescriptor(A,"output_text"))Ij(E);return Object.defineProperty(E,"output_parsed",{enumerable:!0,get(){for(let F of E.output){if(F.type!=="message")continue;for(let K of F.content)if(K.type==="output_text"&&K.parsed!==null)return K.parsed}return null}}),E}function $1(A,q){if(A.text?.format?.type!=="json_schema")return null;if("$parseRaw"in A.text?.format)return(A.text?.format).$parseRaw(q);return JSON.parse(q)}function X1(A){if(gK(A.text?.format))return!0;return!1}function H1(A){return A?.$brand==="auto-parseable-tool"}function L1(A,q){return A.find((g)=>g.type==="function"&&g.name===q)}function V1(A,q){let g=L1(A.tools??[],q.name);return{...q,...q,parsed_arguments:H1(g)?g.$parseRaw(q.arguments):g?.strict?JSON.parse(q.arguments):null}}function Ij(A){let q=[];for(let g of A.output){if(g.type!=="message")continue;for(let E of g.content)if(E.type==="output_text")q.push(E.text)}A.output_text=q.join("")}var VE,xj,yg,Pj,a9,h9,z9,B9;class Rj extends _6{constructor(A){super();VE.add(this),xj.set(this,void 0),yg.set(this,void 0),Pj.set(this,void 0),s(this,xj,A,"f")}static createResponse(A,q,g){let E=new Rj(q);return E._run(()=>E._createOrRetrieveResponse(A,q,{...g,headers:{...g?.headers,"X-Stainless-Helper-Method":"stream"}})),E}async _createOrRetrieveResponse(A,q,g){let E=g?.signal;if(E){if(E.aborted)this.controller.abort();E.addEventListener("abort",()=>this.controller.abort())}V(this,VE,"m",a9).call(this);let F,K=null;if("response_id"in q)F=await A.responses.retrieve(q.response_id,{stream:!0},{...g,signal:this.controller.signal,stream:!0}),K=q.starting_after??null;else F=await A.responses.create({...q,stream:!0},{...g,signal:this.controller.signal});this._connected();for await(let Z of F)V(this,VE,"m",h9).call(this,Z,K);if(F.controller.signal?.aborted)throw new IA;return V(this,VE,"m",z9).call(this)}[(xj=new WeakMap,yg=new WeakMap,Pj=new WeakMap,VE=new WeakSet,a9=function A(){if(this.ended)return;s(this,yg,void 0,"f")},h9=function A(q,g){if(this.ended)return;let E=(K,Z)=>{if(g==null||Z.sequence_number>g)this._emit(K,Z)},F=V(this,VE,"m",B9).call(this,q);switch(E("event",q),q.type){case"response.output_text.delta":{let K=F.output[q.output_index];if(!K)throw new d(`missing output at index ${q.output_index}`);if(K.type==="message"){let Z=K.content[q.content_index];if(!Z)throw new d(`missing content at index ${q.content_index}`);if(Z.type!=="output_text")throw new d(`expected content to be 'output_text', got ${Z.type}`);E("response.output_text.delta",{...q,snapshot:Z.text})}break}case"response.function_call_arguments.delta":{let K=F.output[q.output_index];if(!K)throw new d(`missing output at index ${q.output_index}`);if(K.type==="function_call")E("response.function_call_arguments.delta",{...q,snapshot:K.arguments});break}default:E(q.type,q);break}},z9=function A(){if(this.ended)throw new d("stream has ended, this shouldn't happen");let q=V(this,yg,"f");if(!q)throw new d("request ended without sending any events");s(this,yg,void 0,"f");let g=W1(q,V(this,xj,"f"));return s(this,Pj,g,"f"),g},B9=function A(q){let g=V(this,yg,"f");if(!g){if(q.type!=="response.created")throw new d(`When snapshot hasn't been set yet, expected 'response.created' event, got ${q.type}`);return g=s(this,yg,q.response,"f"),g}switch(q.type){case"response.output_item.added":{g.output.push(q.item);break}case"response.content_part.added":{let E=g.output[q.output_index];if(!E)throw new d(`missing output at index ${q.output_index}`);let F=E.type,K=q.part;if(F==="message"&&K.type!=="reasoning_text")E.content.push(K);else if(F==="reasoning"&&K.type==="reasoning_text"){if(!E.content)E.content=[];E.content.push(K)}break}case"response.output_text.delta":{let E=g.output[q.output_index];if(!E)throw new d(`missing output at index ${q.output_index}`);if(E.type==="message"){let F=E.content[q.content_index];if(!F)throw new d(`missing content at index ${q.content_index}`);if(F.type!=="output_text")throw new d(`expected content to be 'output_text', got ${F.type}`);F.text+=q.delta}break}case"response.function_call_arguments.delta":{let E=g.output[q.output_index];if(!E)throw new d(`missing output at index ${q.output_index}`);if(E.type==="function_call")E.arguments+=q.delta;break}case"response.reasoning_text.delta":{let E=g.output[q.output_index];if(!E)throw new d(`missing output at index ${q.output_index}`);if(E.type==="reasoning"){let F=E.content?.[q.content_index];if(!F)throw new d(`missing content at index ${q.content_index}`);if(F.type!=="reasoning_text")throw new d(`expected content to be 'reasoning_text', got ${F.type}`);F.text+=q.delta}break}case"response.completed":{s(this,yg,q.response,"f");break}}return g},Symbol.asyncIterator)](){let A=[],q=[],g=!1;return this.on("event",(E)=>{let F=q.shift();if(F)F.resolve(E);else A.push(E)}),this.on("end",()=>{g=!0;for(let E of q)E.resolve(void 0);q.length=0}),this.on("abort",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),this.on("error",(E)=>{g=!0;for(let F of q)F.reject(E);q.length=0}),{next:async()=>{if(!A.length){if(g)return{value:void 0,done:!0};return new Promise((F,K)=>q.push({resolve:F,reject:K})).then((F)=>F?{value:F,done:!1}:{value:void 0,done:!0})}return{value:A.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}async finalResponse(){await this.done();let A=V(this,Pj,"f");if(!A)throw new d("stream ended without producing a ChatCompletion");return A}}function W1(A,q){return S9(A,q)}class wK extends h{list(A,q={},g){return this._client.getAPIList(R`/responses/${A}/input_items`,EA,{query:q,...g})}}class CK extends h{count(A={},q){return this._client.post("/responses/input_tokens",{body:A,...q})}}class bg extends h{constructor(){super(...arguments);this.inputItems=new wK(this._client),this.inputTokens=new CK(this._client)}create(A,q){return this._client.post("/responses",{body:A,...q,stream:A.stream??!1})._thenUnwrap((g)=>{if("object"in g&&g.object==="response")Ij(g);return g})}retrieve(A,q={},g){return this._client.get(R`/responses/${A}`,{query:q,...g,stream:q?.stream??!1})._thenUnwrap((E)=>{if("object"in E&&E.object==="response")Ij(E);return E})}delete(A,q){return this._client.delete(R`/responses/${A}`,{...q,headers:D([{Accept:"*/*"},q?.headers])})}parse(A,q){return this._client.responses.create(A,q)._thenUnwrap((g)=>GY(g,A))}stream(A,q){return Rj.createResponse(this._client,A,q)}cancel(A,q){return this._client.post(R`/responses/${A}/cancel`,q)}compact(A,q){return this._client.post("/responses/compact",{body:A,...q})}}bg.InputItems=wK;bg.InputTokens=CK;class kK extends h{create(A,q,g){return this._client.post(R`/uploads/${A}/parts`,gq({body:q,...g},this._client))}}class R6 extends h{constructor(){super(...arguments);this.parts=new kK(this._client)}create(A,q){return this._client.post("/uploads",{body:A,...q})}cancel(A,q){return this._client.post(R`/uploads/${A}/cancel`,q)}complete(A,q,g){return this._client.post(R`/uploads/${A}/complete`,{body:q,...g})}}R6.Parts=kK;var w9=async(A)=>{let q=await Promise.allSettled(A),g=q.filter((F)=>F.status==="rejected");if(g.length){for(let F of g)console.error(F.reason);throw new Error(`${g.length} promise(s) failed - see the above errors`)}let E=[];for(let F of q)if(F.status==="fulfilled")E.push(F.value);return E};class DK extends h{create(A,q,g){return this._client.post(R`/vector_stores/${A}/file_batches`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}retrieve(A,q,g){let{vector_store_id:E}=q;return this._client.get(R`/vector_stores/${E}/file_batches/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}cancel(A,q,g){let{vector_store_id:E}=q;return this._client.post(R`/vector_stores/${E}/file_batches/${A}/cancel`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}async createAndPoll(A,q,g){let E=await this.create(A,q);return await this.poll(A,E.id,g)}listFiles(A,q,g){let{vector_store_id:E,...F}=q;return this._client.getAPIList(R`/vector_stores/${E}/file_batches/${A}/files`,EA,{query:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}async poll(A,q,g){let E=D([g?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":g?.pollIntervalMs?.toString()??void 0}]);while(!0){let{data:F,response:K}=await this.retrieve(q,{vector_store_id:A},{...g,headers:E}).withResponse();switch(F.status){case"in_progress":let Z=5000;if(g?.pollIntervalMs)Z=g.pollIntervalMs;else{let j=K.headers.get("openai-poll-after-ms");if(j){let U=parseInt(j);if(!isNaN(U))Z=U}}await hq(Z);break;case"failed":case"cancelled":case"completed":return F}}}async uploadAndPoll(A,{files:q,fileIds:g=[]},E){if(q==null||q.length==0)throw new Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let F=E?.maxConcurrency??5,K=Math.min(F,q.length),Z=this._client,j=q.values(),U=[...g];async function G(M){for(let O of M){let $=await Z.files.create({file:O,purpose:"assistants"},E);U.push($.id)}}let Y=Array(K).fill(j).map(G);return await w9(Y),await this.createAndPoll(A,{file_ids:U})}}class yK extends h{create(A,q,g){return this._client.post(R`/vector_stores/${A}/files`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}retrieve(A,q,g){let{vector_store_id:E}=q;return this._client.get(R`/vector_stores/${E}/files/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}update(A,q,g){let{vector_store_id:E,...F}=q;return this._client.post(R`/vector_stores/${E}/files/${A}`,{body:F,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A,q={},g){return this._client.getAPIList(R`/vector_stores/${A}/files`,EA,{query:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}delete(A,q,g){let{vector_store_id:E}=q;return this._client.delete(R`/vector_stores/${E}/files/${A}`,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}async createAndPoll(A,q,g){let E=await this.create(A,q,g);return await this.poll(A,E.id,g)}async poll(A,q,g){let E=D([g?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":g?.pollIntervalMs?.toString()??void 0}]);while(!0){let F=await this.retrieve(q,{vector_store_id:A},{...g,headers:E}).withResponse(),K=F.data;switch(K.status){case"in_progress":let Z=5000;if(g?.pollIntervalMs)Z=g.pollIntervalMs;else{let j=F.response.headers.get("openai-poll-after-ms");if(j){let U=parseInt(j);if(!isNaN(U))Z=U}}await hq(Z);break;case"failed":case"completed":return K}}}async upload(A,q,g){let E=await this._client.files.create({file:q,purpose:"assistants"},g);return this.create(A,{file_id:E.id},g)}async uploadAndPoll(A,q,g){let E=await this.upload(A,q,g);return await this.poll(A,E.id,g)}content(A,q,g){let{vector_store_id:E}=q;return this._client.getAPIList(R`/vector_stores/${E}/files/${A}/content`,Kg,{...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}class vg extends h{constructor(){super(...arguments);this.files=new yK(this._client),this.fileBatches=new DK(this._client)}create(A,q){return this._client.post("/vector_stores",{body:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}retrieve(A,q){return this._client.get(R`/vector_stores/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}update(A,q,g){return this._client.post(R`/vector_stores/${A}`,{body:q,...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}list(A={},q){return this._client.getAPIList("/vector_stores",EA,{query:A,...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}delete(A,q){return this._client.delete(R`/vector_stores/${A}`,{...q,headers:D([{"OpenAI-Beta":"assistants=v2"},q?.headers])})}search(A,q,g){return this._client.getAPIList(R`/vector_stores/${A}/search`,Kg,{body:q,method:"post",...g,headers:D([{"OpenAI-Beta":"assistants=v2"},g?.headers])})}}vg.Files=yK;vg.FileBatches=DK;class WE extends h{create(A,q){return this._client.post("/videos",iG({body:A,...q},this._client))}retrieve(A,q){return this._client.get(R`/videos/${A}`,q)}list(A={},q){return this._client.getAPIList("/videos",hg,{query:A,...q})}delete(A,q){return this._client.delete(R`/videos/${A}`,q)}downloadContent(A,q={},g){return this._client.get(R`/videos/${A}/content`,{query:q,...g,headers:D([{Accept:"application/binary"},g?.headers]),__binaryResponse:!0})}remix(A,q,g){return this._client.post(R`/videos/${A}/remix`,iG({body:q,...g},this._client))}}var NE,C9,Sj;class TE extends h{constructor(){super(...arguments);NE.add(this)}async unwrap(A,q,g=this._client.webhookSecret,E=300){return await this.verifySignature(A,q,g,E),JSON.parse(A)}async verifySignature(A,q,g=this._client.webhookSecret,E=300){if(typeof crypto==="undefined"||typeof crypto.subtle.importKey!=="function"||typeof crypto.subtle.verify!=="function")throw new Error("Webhook signature verification is only supported when the `crypto` global is defined");V(this,NE,"m",C9).call(this,g);let F=D([q]).values,K=V(this,NE,"m",Sj).call(this,F,"webhook-signature"),Z=V(this,NE,"m",Sj).call(this,F,"webhook-timestamp"),j=V(this,NE,"m",Sj).call(this,F,"webhook-id"),U=parseInt(Z,10);if(isNaN(U))throw new Eg("Invalid webhook timestamp format");let G=Math.floor(Date.now()/1000);if(G-U>E)throw new Eg("Webhook timestamp is too old");if(U>G+E)throw new Eg("Webhook timestamp is too new");let Y=K.split(" ").map((_)=>_.startsWith("v1,")?_.substring(3):_),M=g.startsWith("whsec_")?Buffer.from(g.replace("whsec_",""),"base64"):Buffer.from(g,"utf-8"),O=j?`${j}.${Z}.${A}`:`${Z}.${A}`,$=await crypto.subtle.importKey("raw",M,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(let _ of Y)try{let x=Buffer.from(_,"base64");if(await crypto.subtle.verify("HMAC",$,x,new TextEncoder().encode(O)))return}catch{continue}throw new Eg("The given webhook signature does not match the expected signature")}}NE=new WeakSet,C9=function A(q){if(typeof q!=="string"||q.length===0)throw new Error("The webhook secret must either be set using the env var, OPENAI_WEBHOOK_SECRET, on the client class, OpenAI({ webhookSecret: '123' }), or passed to this function")},Sj=function A(q,g){if(!q)throw new Error("Headers are required");let E=q.get(g);if(E===null||E===void 0)throw new Error(`Missing required header: ${g}`);return E};var YY,QY,aj,k9;class e{constructor({baseURL:A=Cg("OPENAI_BASE_URL"),apiKey:q=Cg("OPENAI_API_KEY"),organization:g=Cg("OPENAI_ORG_ID")??null,project:E=Cg("OPENAI_PROJECT_ID")??null,webhookSecret:F=Cg("OPENAI_WEBHOOK_SECRET")??null,...K}={}){if(YY.add(this),aj.set(this,void 0),this.completions=new GE(this),this.chat=new $6(this),this.embeddings=new QE(this),this.files=new JE(this),this.images=new XE(this),this.audio=new Ug(this),this.moderations=new LE(this),this.models=new HE(this),this.fineTuning=new Cq(this),this.graders=new P6(this),this.vectorStores=new vg(this),this.webhooks=new TE(this),this.beta=new wq(this),this.batches=new ZE(this),this.uploads=new R6(this),this.responses=new bg(this),this.realtime=new Dg(this),this.conversations=new I6(this),this.evals=new x6(this),this.containers=new T6(this),this.videos=new WE(this),q===void 0)throw new d("Missing credentials. Please pass an `apiKey`, or set the `OPENAI_API_KEY` environment variable.");let Z={apiKey:q,organization:g,project:E,webhookSecret:F,...K,baseURL:A||"https://api.openai.com/v1"};if(!Z.dangerouslyAllowBrowser&&yM())throw new d(`It looks like you're running in a browser-like environment.
|
|
145
154
|
|
|
146
155
|
This is disabled by default, as it risks exposing your secret API credentials to attackers.
|
|
147
156
|
If you understand the risks and have appropriate mitigations in place,
|
|
@@ -150,7 +159,7 @@ you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
|
|
|
150
159
|
new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
|
|
151
160
|
|
|
152
161
|
https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
|
|
153
|
-
`);this.baseURL=Z.baseURL,this.timeout=Z.timeout??wG.DEFAULT_TIMEOUT,this.logger=Z.logger??console;let j="warn";this.logLevel=j,this.logLevel=YG(Z.logLevel,"ClientOptions.logLevel",this)??YG(Tg("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??j,this.fetchOptions=Z.fetchOptions,this.maxRetries=Z.maxRetries??2,this.fetch=Z.fetch??YJ(),i(this,Yj,OJ,"f"),this._options=Z,this.apiKey=typeof q==="string"?q:"Missing Key",this.organization=g,this.project=E,this.webhookSecret=F}withOptions(A){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret,...A})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:A,nulls:q}){return}async authHeaders(A){return D([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(A){return UG(A,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${Lg}`}defaultIdempotencyKey(){return`stainless-node-retry-${oU()}`}makeStatusError(A,q,g,E){return VA.generate(A,q,g,E)}async _callApiKey(){let A=this._options.apiKey;if(typeof A!=="function")return!1;let q;try{q=await A()}catch(g){if(g instanceof f)throw g;throw new f(`Failed to get token from 'apiKey' function: ${g.message}`,{cause:g})}if(typeof q!=="string"||!q)throw new f(`Expected 'apiKey' function argument to return a string but it returned ${q}`);return this.apiKey=q,!0}buildURL(A,q,g){let E=!L(this,BG,"m",ZM).call(this)&&g||this.baseURL,F=AJ(A)?new URL(A):new URL(E+(E.endsWith("/")&&A.startsWith("/")?A.slice(1):A)),K=this.defaultQuery();if(!qJ(K))q={...K,...q};if(typeof q==="object"&&q&&!Array.isArray(q))F.search=this.stringifyQuery(q);return F.toString()}async prepareOptions(A){await this._callApiKey()}async prepareRequest(A,{url:q,options:g}){}get(A,q){return this.methodRequest("get",A,q)}post(A,q){return this.methodRequest("post",A,q)}patch(A,q){return this.methodRequest("patch",A,q)}put(A,q){return this.methodRequest("put",A,q)}delete(A,q){return this.methodRequest("delete",A,q)}methodRequest(A,q,g){return this.request(Promise.resolve(g).then((E)=>{return{method:A,path:q,...E}}))}request(A,q=null){return new g6(this,this.makeRequest(A,q,void 0))}async makeRequest(A,q,g){let E=await A,F=E.maxRetries??this.maxRetries;if(q==null)q=F;await this.prepareOptions(E);let{req:K,url:Z,timeout:j}=await this.buildRequest(E,{retryCount:F-q});await this.prepareRequest(K,{url:Z,options:E});let U="log_"+(Math.random()*16777216|0).toString(16).padStart(6,"0"),O=g===void 0?"":`, retryOf: ${g}`,Y=Date.now();if(HA(this).debug(`[${U}] sending request`,Ag({retryOfRequestLogID:g,method:E.method,url:Z,options:E,headers:K.headers})),E.signal?.aborted)throw new TA;let M=new AbortController,J=await this.fetchWithTimeout(Z,K,j,M).catch(xF),$=Date.now();if(J instanceof globalThis.Error){let x=`retrying, ${q} attempts remaining`;if(E.signal?.aborted)throw new TA;let V=NF(J)||/timed? ?out/i.test(String(J)+("cause"in J?String(J.cause):""));if(q)return HA(this).info(`[${U}] connection ${V?"timed out":"failed"} - ${x}`),HA(this).debug(`[${U}] connection ${V?"timed out":"failed"} (${x})`,Ag({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:J.message})),this.retryRequest(E,q,g??U);if(HA(this).info(`[${U}] connection ${V?"timed out":"failed"} - error; no more retries left`),HA(this).debug(`[${U}] connection ${V?"timed out":"failed"} (error; no more retries left)`,Ag({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:J.message})),V)throw new q6;throw new A6({cause:J})}let _=[...J.headers.entries()].filter(([x])=>x==="x-request-id").map(([x,V])=>", "+x+": "+JSON.stringify(V)).join(""),T=`[${U}${O}${_}] ${K.method} ${Z} ${J.ok?"succeeded":"failed"} with status ${J.status} in ${$-Y}ms`;if(!J.ok){let x=await this.shouldRetry(J);if(q&&x){let c=`retrying, ${q} attempts remaining`;return await QJ(J.body),HA(this).info(`${T} - ${c}`),HA(this).debug(`[${U}] response error (${c})`,Ag({retryOfRequestLogID:g,url:J.url,status:J.status,headers:J.headers,durationMs:$-Y})),this.retryRequest(E,q,g??U,J.headers)}let V=x?"error; no more retries left":"error; not retryable";HA(this).info(`${T} - ${V}`);let a=await J.text().catch((c)=>xF(c).message),k=FJ(a),C=k?void 0:a;throw HA(this).debug(`[${U}] response error (${V})`,Ag({retryOfRequestLogID:g,url:J.url,status:J.status,headers:J.headers,message:C,durationMs:Date.now()-Y})),this.makeStatusError(J.status,k,C,J.headers)}return HA(this).info(T),HA(this).debug(`[${U}] response start`,Ag({retryOfRequestLogID:g,url:J.url,status:J.status,headers:J.headers,durationMs:$-Y})),{response:J,options:E,controller:M,requestLogID:U,retryOfRequestLogID:g,startTime:Y}}getAPIList(A,q,g){return this.requestAPIList(q,{method:"get",path:A,...g})}requestAPIList(A,q){let g=this.makeRequest(q,null,void 0);return new dZ(this,g,A)}async fetchWithTimeout(A,q,g,E){let{signal:F,method:K,...Z}=q||{};if(F)F.addEventListener("abort",()=>E.abort());let j=setTimeout(()=>E.abort(),g),U=globalThis.ReadableStream&&Z.body instanceof globalThis.ReadableStream||typeof Z.body==="object"&&Z.body!==null&&Symbol.asyncIterator in Z.body,O={signal:E.signal,...U?{duplex:"half"}:{},method:"GET",...Z};if(K)O.method=K.toUpperCase();try{return await this.fetch.call(void 0,A,O)}finally{clearTimeout(j)}}async shouldRetry(A){let q=A.headers.get("x-should-retry");if(q==="true")return!0;if(q==="false")return!1;if(A.status===408)return!0;if(A.status===409)return!0;if(A.status===429)return!0;if(A.status>=500)return!0;return!1}async retryRequest(A,q,g,E){let F,K=E?.get("retry-after-ms");if(K){let j=parseFloat(K);if(!Number.isNaN(j))F=j}let Z=E?.get("retry-after");if(Z&&!F){let j=parseFloat(Z);if(!Number.isNaN(j))F=j*1000;else F=Date.parse(Z)-Date.now()}if(!(F&&0<=F&&F<60000)){let j=A.maxRetries??this.maxRetries;F=this.calculateDefaultRetryTimeoutMillis(q,j)}return await aq(F),this.makeRequest(A,q-1,g)}calculateDefaultRetryTimeoutMillis(A,q){let F=q-A,K=Math.min(0.5*Math.pow(2,F),8),Z=1-Math.random()*0.25;return K*Z*1000}async buildRequest(A,{retryCount:q=0}={}){let g={...A},{method:E,path:F,query:K,defaultBaseURL:Z}=g,j=this.buildURL(F,K,Z);if("timeout"in g)EJ("timeout",g.timeout);g.timeout=g.timeout??this.timeout;let{bodyHeaders:U,body:O}=this.buildBody({options:g}),Y=await this.buildHeaders({options:A,method:E,bodyHeaders:U,retryCount:q});return{req:{method:E,headers:Y,...g.signal&&{signal:g.signal},...globalThis.ReadableStream&&O instanceof globalThis.ReadableStream&&{duplex:"half"},...O&&{body:O},...this.fetchOptions??{},...g.fetchOptions??{}},url:j,timeout:g.timeout}}async buildHeaders({options:A,method:q,bodyHeaders:g,retryCount:E}){let F={};if(this.idempotencyHeader&&q!=="get"){if(!A.idempotencyKey)A.idempotencyKey=this.defaultIdempotencyKey();F[this.idempotencyHeader]=A.idempotencyKey}let K=D([F,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(E),...A.timeout?{"X-Stainless-Timeout":String(Math.trunc(A.timeout/1000))}:{},...GJ(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(A),this._options.defaultHeaders,g,A.headers]);return this.validateHeaders(K),K.values}buildBody({options:{body:A,headers:q}}){if(!A)return{bodyHeaders:void 0,body:void 0};let g=D([q]);if(ArrayBuffer.isView(A)||A instanceof ArrayBuffer||A instanceof DataView||typeof A==="string"&&g.values.has("content-type")||globalThis.Blob&&A instanceof globalThis.Blob||A instanceof FormData||A instanceof URLSearchParams||globalThis.ReadableStream&&A instanceof globalThis.ReadableStream)return{bodyHeaders:void 0,body:A};else if(typeof A==="object"&&((Symbol.asyncIterator in A)||(Symbol.iterator in A)&&("next"in A)&&typeof A.next==="function"))return{bodyHeaders:void 0,body:CZ(A)};else return L(this,Yj,"f").call(this,{body:A,headers:g})}}wG=e,Yj=new WeakMap,BG=new WeakSet,ZM=function(){return this.baseURL!=="https://api.openai.com/v1"};e.OpenAI=wG;e.DEFAULT_TIMEOUT=600000;e.OpenAIError=f;e.APIError=VA;e.APIConnectionError=A6;e.APIConnectionTimeoutError=q6;e.APIUserAbortError=TA;e.NotFoundError=PF;e.ConflictError=RF;e.RateLimitError=hF;e.BadRequestError=TF;e.AuthenticationError=IF;e.InternalServerError=zF;e.PermissionDeniedError=aF;e.UnprocessableEntityError=SF;e.InvalidWebhookSignatureError=eq;e.toFile=uZ;e.Completions=r6;e.Chat=K6;e.Embeddings=e6;e.Files=qE;e.Images=KE;e.Audio=Fg;e.Moderations=jE;e.Models=ZE;e.FineTuning=hq;e.Graders=_6;e.VectorStores=Sg;e.Webhooks=QE;e.Beta=Sq;e.Batches=t6;e.Uploads=$6;e.Responses=Rg;e.Realtime=ag;e.Conversations=J6;e.Evals=M6;e.Containers=O6;e.Videos=GE;async function SH(){let A=await fetch("https://hacker-news.firebaseio.com/v0/topstories.json");if(!A.ok)throw Error("Failed to fetch top stories");return A.json()}function jM(A){if(!A)return null;if(A.level>3)return null;return{...A,comments:A.comments.slice(0,8).map(jM).filter(Boolean)}}function UM(A,q){let g=A.comments.slice(0,12).map(jM).filter(Boolean);return{...A,comments:q?g:[]}}async function GM(A){try{let q=await fetch(`https://api.hnpwa.com/v0/item/${A}.json`);if(!q.ok)return null;let g=await q.json();return UM(g,!0)}catch{return null}}async function YM(){let q=(await SH()).sort((Y,M)=>M-Y).slice(0,200),g=await Promise.all(q.map(async(Y)=>{try{let M=await fetch(`https://api.hnpwa.com/v0/item/${Y}.json`);if(!M.ok)return null;let J=await M.json();return UM(J,!1)}catch{return null}})),E=Date.now()/1000,F=E-86400;return g.filter((Y)=>Y!==null).filter((Y)=>Y.type==="link").filter((Y)=>Y.time>F).filter((Y)=>(Y.points||0)>=50||Y.comments_count>=20).sort((Y,M)=>{let J=(E-Y.time)/3600,$=(E-M.time)/3600,_=Math.max(0,100*(1-J/24)),T=Math.max(0,100*(1-$/24)),x=(Y.points||0)+Y.comments_count*0.75+_;return(M.points||0)+M.comments_count*0.75+T-x}).slice(0,24)}import{homedir as hH}from"os";import{join as QM}from"path";import{existsSync as OM,mkdirSync as zH,readFileSync as BH,writeFileSync as wH}from"fs";var NK=[{id:"claude-haiku-4-5-20251001",name:"Claude Haiku 4.5"},{id:"claude-sonnet-4-5-20250929",name:"Claude Sonnet 4.5"},{id:"claude-opus-4-5-20251101",name:"Claude Opus 4.5"}],xK=[{id:"gpt-5-nano-2025-08-07",name:"GPT-5 Nano"},{id:"gpt-5-mini-2025-08-07",name:"GPT-5 Mini"},{id:"gpt-5.2-2025-12-11",name:"GPT-5.2"}],CH="claude-haiku-4-5-20251001",kH="gpt-5-nano-2025-08-07",CG=QM(hH(),".config","hn-cli"),kG=QM(CG,"config.json");function hg(){try{if(OM(kG)){let A=BH(kG,"utf-8");return JSON.parse(A)}}catch{}return{}}function TK(A){if(!OM(CG))zH(CG,{recursive:!0});wH(kG,JSON.stringify(A,null,2))}function zg(A){if(A==="anthropic"){if(process.env.ANTHROPIC_API_KEY)return process.env.ANTHROPIC_API_KEY}else if(A==="openai"){if(process.env.OPENAI_API_KEY)return process.env.OPENAI_API_KEY}let q=hg();if(A==="anthropic")return q.anthropicApiKey;else return q.openaiApiKey}function JM(){if(process.env.ANTHROPIC_API_KEY)return"anthropic";if(process.env.OPENAI_API_KEY)return"openai";let A=hg();if(A.provider&&zg(A.provider))return A.provider;if(A.anthropicApiKey)return"anthropic";if(A.openaiApiKey)return"openai";return}function X6(A){let q=hg();if(A==="anthropic")return q.anthropicModel||CH;else return q.openaiModel||kH}function MM(A,q){let g=hg();if(A==="anthropic")g.anthropicModel=q;else g.openaiModel=q;TK(g)}function _M(){let A=hg();delete A.anthropicApiKey,delete A.openaiApiKey,delete A.provider,TK(A)}var DH={bg:void 0,bgSelected:"#2a2a2a",border:"#3a3a3a",text:"#e0e0e0",textDim:"#888888",textMuted:"#666666",textVeryDim:"#444444",accent:"#ff6600",link:"#6699ff",commentL1:"#555555",commentL2:"#444444",commentL3:"#333333"},yH={bg:void 0,bgSelected:"#e8e8e8",border:"#cccccc",text:"#1a1a1a",textDim:"#666666",textMuted:"#888888",textVeryDim:"#aaaaaa",accent:"#ff6600",link:"#0066cc",commentL1:"#cccccc",commentL2:"#dddddd",commentL3:"#eeeeee"},h={...DH};function bH(A){if(!A)return!1;let q=A.replace("#",""),g=parseInt(q.substr(0,2),16),E=parseInt(q.substr(2,2),16),F=parseInt(q.substr(4,2),16);return(0.299*g+0.587*E+0.114*F)/255>0.5}var vH="https://brianlovin.com/hn";class H6{renderer;ctx;callbacks;posts=[];selectedIndex=-1;selectedPost=null;rootCommentIndex=0;contentArea;storyListPanel;storyListScroll;storyItems=new Map;detailPanel;detailHeader;detailScroll;detailContent;rootCommentBoxes=[];shortcutsBar;loadingIndicator=null;loadingInterval=null;loadingFrame=0;static LOADING_CHARS=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];chatMode=!1;chatMessages=[];chatPanel=null;chatScroll=null;chatContent=null;chatInput=null;chatStoryContext="";anthropic=null;openai=null;chatProvider="anthropic";isStreaming=!1;authSetupMode=!1;authSetupStep="provider";authSelectedProvider="anthropic";authKeyInput=null;settingsMode=!1;settingsSection="main";settingsSelectedIndex=0;settingsModelProvider="anthropic";suggestions=[];originalSuggestions=[];selectedSuggestionIndex=-1;suggestionsGenerated=!1;suggestionsLoading=!1;suggestionsContainer=null;constructor(A,q={}){this.renderer=A,this.ctx=A,this.callbacks=q}async initialize(){await this.detectTheme(),this.setupLayout(),this.setupKeyboardHandlers(),await this.loadPosts()}initializeForTesting(){this.setupLayout(),this.setupKeyboardHandlers()}async detectTheme(){try{let A=await this.renderer.getPalette({timeout:100});if(A.defaultBackground&&bH(A.defaultBackground))h={...yH}}catch{}}setupLayout(){let A=new s(this.ctx,{width:"100%",height:"100%",flexDirection:"column",backgroundColor:h.bg,paddingTop:1}),q=this.createHeader(),g=this.createContentArea();A.add(q),A.add(g),this.renderer.root.add(A)}createHeader(){let A=new s(this.ctx,{width:"100%",height:2,flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingLeft:2,paddingRight:2,backgroundColor:h.bg,borderStyle:"single",border:["bottom"],borderColor:h.border}),q=new o(this.ctx,{content:"Hacker News",fg:h.accent});A.add(q);let g=new s(this.ctx,{flexDirection:"row",gap:2,alignItems:"center"});this.loadingIndicator=new o(this.ctx,{content:"",fg:h.textDim}),g.add(this.loadingIndicator);let E=new o(this.ctx,{content:"brianlovin/hn-cli",fg:h.textDim,onMouseDown:()=>{this.callbacks.onOpenUrl?.("https://github.com/brianlovin/hn-cli")},onMouseOver:()=>{E.fg=h.link},onMouseOut:()=>{E.fg=h.textDim}});return g.add(E),A.add(g),A}startLoadingAnimation(){if(this.loadingInterval)return;this.loadingFrame=0,this.loadingInterval=setInterval(()=>{if(this.loadingIndicator&&!this.renderer.isDestroyed){let A=H6.LOADING_CHARS[this.loadingFrame]??"\u280B";this.loadingIndicator.content=A,this.loadingFrame=(this.loadingFrame+1)%H6.LOADING_CHARS.length}},80)}stopLoadingAnimation(){if(this.loadingInterval)clearInterval(this.loadingInterval),this.loadingInterval=null;if(this.loadingIndicator)this.loadingIndicator.content=""}createContentArea(){this.contentArea=new s(this.ctx,{id:"content-area",width:"100%",flexGrow:1,flexDirection:"row"});let A=this.createStoryList(),q=this.createDetailPanel();return this.contentArea.add(A),this.contentArea.add(q),this.contentArea}createStoryList(){return this.storyListPanel=new s(this.ctx,{id:"story-list-panel",width:"35%",height:"100%",flexDirection:"column",borderStyle:"single",border:["right"],borderColor:h.border,backgroundColor:h.bg,paddingLeft:1,paddingBottom:1}),this.storyListScroll=new z6(this.ctx,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:h.bg,contentOptions:{flexDirection:"column",backgroundColor:h.bg}}),this.storyListPanel.add(this.storyListScroll),this.storyListPanel}createDetailPanel(){return this.detailPanel=new s(this.ctx,{width:"65%",height:"100%",flexDirection:"column",backgroundColor:h.bg}),this.detailHeader=new s(this.ctx,{id:"detail-header",width:"100%",flexDirection:"column",flexShrink:0,paddingLeft:2,paddingRight:2,paddingTop:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:h.border,backgroundColor:h.bg}),this.detailScroll=new z6(this.ctx,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:h.bg,contentOptions:{flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:1,backgroundColor:h.bg}}),this.detailContent=new s(this.ctx,{width:"100%",flexDirection:"column",backgroundColor:h.bg}),this.detailScroll.add(this.detailContent),this.detailPanel.add(this.detailHeader),this.detailPanel.add(this.detailScroll),this.shortcutsBar=this.createShortcutsBar(),this.detailPanel.add(this.shortcutsBar),this.detailPanel}createChatPanel(){this.chatScroll=new z6(this.ctx,{width:"100%",flexGrow:1,scrollY:!0,backgroundColor:h.bg,contentOptions:{flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:1,backgroundColor:h.bg}}),this.chatContent=new s(this.ctx,{width:"100%",flexDirection:"column",backgroundColor:h.bg}),this.chatScroll.add(this.chatContent),this.suggestionsContainer=new s(this.ctx,{id:"suggestions-container",width:"100%",flexDirection:"column",flexShrink:0,paddingLeft:2,paddingRight:2,backgroundColor:h.bg});let A=new s(this.ctx,{width:"100%",flexShrink:0,flexDirection:"row",alignItems:"flex-start",paddingLeft:2,paddingRight:2,backgroundColor:h.bg,borderStyle:"single",border:["top"],borderColor:h.border}),q=new o(this.ctx,{content:"\u203A ",fg:h.accent});A.add(q),this.chatInput=new xq(this.ctx,{width:"100%",flexGrow:1,minHeight:1,maxHeight:5,wrapMode:"word",placeholder:"Ask a question about this story...",backgroundColor:h.bg,keyBindings:[{name:"return",shift:!0,action:"newline"},{name:"return",action:"submit"}]}),this.chatInput.on("submit",()=>{if(this.chatInput&&this.chatInput.plainText.trim()){this.sendChatMessage();return}if(this.selectedSuggestionIndex>=0&&this.suggestions.length>0){this.selectSuggestion();return}}),A.add(this.chatInput);let g=this.createChatShortcutsBar();this.chatPanel=new s(this.ctx,{width:"100%",height:"100%",flexDirection:"column",backgroundColor:h.bg});let E=new s(this.ctx,{width:"100%",flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:1,paddingBottom:1,borderStyle:"single",border:["bottom"],borderColor:h.border,backgroundColor:h.bg}),F=this.selectedPost;if(F){let K=new o(this.ctx,{content:F.title,fg:h.text,wrapMode:"word",onMouseDown:()=>this.openStoryUrl(),onMouseOver:()=>{K.fg=h.link},onMouseOut:()=>{K.fg=h.text}});if(E.add(K),F.domain){let Z=new o(this.ctx,{content:F.domain,fg:h.textDim,marginTop:1,onMouseDown:()=>this.openStoryUrl()});E.add(Z)}}this.chatPanel.add(E),this.chatPanel.add(this.chatScroll),this.chatPanel.add(this.suggestionsContainer),this.chatPanel.add(A),this.chatPanel.add(g)}createChatShortcutsBar(){let A=new s(this.ctx,{width:"100%",height:3,flexDirection:"row",alignItems:"center",paddingLeft:2,paddingRight:2,paddingBottom:1,backgroundColor:h.bg,borderStyle:"single",border:["top"],borderColor:h.border,gap:2});return[{key:",",desc:"settings"},{key:"esc",desc:"close"}].forEach(({key:g,desc:E})=>{let F=new s(this.ctx,{flexDirection:"row",gap:1}),K=new o(this.ctx,{content:g,fg:h.accent}),Z=new o(this.ctx,{content:E,fg:h.textDim});F.add(K),F.add(Z),A.add(F)}),A}showChatView(){if(!this.selectedPost)return;if(this.chatMode=!0,this.chatMessages=[],this.suggestions=[],this.selectedSuggestionIndex=-1,this.suggestionsGenerated=!1,this.suggestionsLoading=!0,this.contentArea.remove(this.storyListPanel.id),this.detailPanel.width="100%",this.detailPanel.remove(this.detailHeader.id),this.detailPanel.remove(this.detailScroll.id),this.detailPanel.remove(this.shortcutsBar.id),this.createChatPanel(),this.chatPanel)for(let A of this.chatPanel.getChildren())this.detailPanel.add(A);setTimeout(()=>{if(this.chatInput)this.chatInput.focus(),this.chatInput.clear()},10),this.addChatMessage("assistant",`I have the full context of "${this.selectedPost.title}" and all ${this.selectedPost.comments_count} comments. Ask me anything!`),this.renderSuggestions(),this.generateSuggestions()}hideChatView(){if(!this.chatMode)return;if(this.chatMode=!1,this.chatInput)this.chatInput.blur();this.contentArea.remove(this.detailPanel.id),this.contentArea.add(this.storyListPanel),this.contentArea.add(this.detailPanel),this.detailPanel.width="65%";for(let A of this.detailPanel.getChildren())this.detailPanel.remove(A.id);if(this.detailPanel.add(this.detailHeader),this.detailPanel.add(this.detailScroll),this.detailPanel.add(this.shortcutsBar),this.selectedPost)this.renderDetail(this.selectedPost)}addChatMessage(A,q){this.chatMessages.push({role:A,content:q}),this.renderChatMessages()}renderChatMessages(){if(!this.chatContent)return;for(let A of this.chatContent.getChildren())this.chatContent.remove(A.id);for(let A of this.chatMessages){let q=new s(this.ctx,{width:"100%",flexDirection:"column",marginBottom:1}),g=this.chatProvider==="anthropic"?"Claude":"GPT",E=new o(this.ctx,{content:A.role==="user"?"You":g,fg:A.role==="user"?h.accent:h.link});q.add(E);let F=new o(this.ctx,{content:A.content,fg:h.text,wrapMode:"word"});q.add(F),this.chatContent.add(q)}if(this.chatScroll)this.chatScroll.scrollTop=this.chatScroll.scrollHeight}async sendChatMessage(){if(!this.chatInput||this.isStreaming)return;let A=this.chatInput.plainText.trim();if(!A)return;if(this.chatInput.clear(),this.addChatMessage("user",A),!this.chatStoryContext&&this.selectedPost)this.chatStoryContext=this.buildStoryContext(this.selectedPost);await this.streamAIResponse(A)}buildStoryContext(A){let q=A.url||`https://news.ycombinator.com/item?id=${A.id}`,g=`# Hacker News Story
|
|
162
|
+
`);this.baseURL=Z.baseURL,this.timeout=Z.timeout??QY.DEFAULT_TIMEOUT,this.logger=Z.logger??console;let j="warn";this.logLevel=j,this.logLevel=cG(Z.logLevel,"ClientOptions.logLevel",this)??cG(Cg("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??j,this.fetchOptions=Z.fetchOptions,this.maxRetries=Z.maxRetries??2,this.fetch=Z.fetch??vM(),s(this,aj,fM,"f"),this._options=Z,this.apiKey=typeof q==="string"?q:"Missing Key",this.organization=g,this.project=E,this.webhookSecret=F}withOptions(A){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret,...A})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:A,nulls:q}){return}async authHeaders(A){return D([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(A){return mG(A,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${ag}`}defaultIdempotencyKey(){return`stainless-node-retry-${hG()}`}makeStatusError(A,q,g,E){return VA.generate(A,q,g,E)}async _callApiKey(){let A=this._options.apiKey;if(typeof A!=="function")return!1;let q;try{q=await A()}catch(g){if(g instanceof d)throw g;throw new d(`Failed to get token from 'apiKey' function: ${g.message}`,{cause:g})}if(typeof q!=="string"||!q)throw new d(`Expected 'apiKey' function argument to return a string but it returned ${q}`);return this.apiKey=q,!0}buildURL(A,q,g){let E=!V(this,YY,"m",k9).call(this)&&g||this.baseURL,F=aM(A)?new URL(A):new URL(E+(E.endsWith("/")&&A.startsWith("/")?A.slice(1):A)),K=this.defaultQuery();if(!hM(K))q={...K,...q};if(typeof q==="object"&&q&&!Array.isArray(q))F.search=this.stringifyQuery(q);return F.toString()}async prepareOptions(A){await this._callApiKey()}async prepareRequest(A,{url:q,options:g}){}get(A,q){return this.methodRequest("get",A,q)}post(A,q){return this.methodRequest("post",A,q)}patch(A,q){return this.methodRequest("patch",A,q)}put(A,q){return this.methodRequest("put",A,q)}delete(A,q){return this.methodRequest("delete",A,q)}methodRequest(A,q,g){return this.request(Promise.resolve(g).then((E)=>{return{method:A,path:q,...E}}))}request(A,q=null){return new J6(this,this.makeRequest(A,q,void 0))}async makeRequest(A,q,g){let E=await A,F=E.maxRetries??this.maxRetries;if(q==null)q=F;await this.prepareOptions(E);let{req:K,url:Z,timeout:j}=await this.buildRequest(E,{retryCount:F-q});await this.prepareRequest(K,{url:Z,options:E});let U="log_"+(Math.random()*16777216|0).toString(16).padStart(6,"0"),G=g===void 0?"":`, retryOf: ${g}`,Y=Date.now();if(HA(this).debug(`[${U}] sending request`,Fg({retryOfRequestLogID:g,method:E.method,url:Z,options:E,headers:K.headers})),E.signal?.aborted)throw new IA;let M=new AbortController,O=await this.fetchWithTimeout(Z,K,j,M).catch(vF),$=Date.now();if(O instanceof globalThis.Error){let N=`retrying, ${q} attempts remaining`;if(E.signal?.aborted)throw new IA;let L=bF(O)||/timed? ?out/i.test(String(O)+("cause"in O?String(O.cause):""));if(q)return HA(this).info(`[${U}] connection ${L?"timed out":"failed"} - ${N}`),HA(this).debug(`[${U}] connection ${L?"timed out":"failed"} (${N})`,Fg({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:O.message})),this.retryRequest(E,q,g??U);if(HA(this).info(`[${U}] connection ${L?"timed out":"failed"} - error; no more retries left`),HA(this).debug(`[${U}] connection ${L?"timed out":"failed"} (error; no more retries left)`,Fg({retryOfRequestLogID:g,url:Z,durationMs:$-Y,message:O.message})),L)throw new O6;throw new Q6({cause:O})}let _=[...O.headers.entries()].filter(([N])=>N==="x-request-id").map(([N,L])=>", "+N+": "+JSON.stringify(L)).join(""),x=`[${U}${G}${_}] ${K.method} ${Z} ${O.ok?"succeeded":"failed"} with status ${O.status} in ${$-Y}ms`;if(!O.ok){let N=await this.shouldRetry(O);if(q&&N){let p=`retrying, ${q} attempts remaining`;return await mM(O.body),HA(this).info(`${x} - ${p}`),HA(this).debug(`[${U}] response error (${p})`,Fg({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,durationMs:$-Y})),this.retryRequest(E,q,g??U,O.headers)}let L=N?"error; no more retries left":"error; not retryable";HA(this).info(`${x} - ${L}`);let P=await O.text().catch((p)=>vF(p).message),k=wM(P),C=k?void 0:P;throw HA(this).debug(`[${U}] response error (${L})`,Fg({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,message:C,durationMs:Date.now()-Y})),this.makeStatusError(O.status,k,C,O.headers)}return HA(this).info(x),HA(this).debug(`[${U}] response start`,Fg({retryOfRequestLogID:g,url:O.url,status:O.status,headers:O.headers,durationMs:$-Y})),{response:O,options:E,controller:M,requestLogID:U,retryOfRequestLogID:g,startTime:Y}}getAPIList(A,q,g){return this.requestAPIList(q,{method:"get",path:A,...g})}requestAPIList(A,q){let g=this.makeRequest(q,null,void 0);return new Uj(this,g,A)}async fetchWithTimeout(A,q,g,E){let{signal:F,method:K,...Z}=q||{};if(F)F.addEventListener("abort",()=>E.abort());let j=setTimeout(()=>E.abort(),g),U=globalThis.ReadableStream&&Z.body instanceof globalThis.ReadableStream||typeof Z.body==="object"&&Z.body!==null&&Symbol.asyncIterator in Z.body,G={signal:E.signal,...U?{duplex:"half"}:{},method:"GET",...Z};if(K)G.method=K.toUpperCase();try{return await this.fetch.call(void 0,A,G)}finally{clearTimeout(j)}}async shouldRetry(A){let q=A.headers.get("x-should-retry");if(q==="true")return!0;if(q==="false")return!1;if(A.status===408)return!0;if(A.status===409)return!0;if(A.status===429)return!0;if(A.status>=500)return!0;return!1}async retryRequest(A,q,g,E){let F,K=E?.get("retry-after-ms");if(K){let j=parseFloat(K);if(!Number.isNaN(j))F=j}let Z=E?.get("retry-after");if(Z&&!F){let j=parseFloat(Z);if(!Number.isNaN(j))F=j*1000;else F=Date.parse(Z)-Date.now()}if(!(F&&0<=F&&F<60000)){let j=A.maxRetries??this.maxRetries;F=this.calculateDefaultRetryTimeoutMillis(q,j)}return await hq(F),this.makeRequest(A,q-1,g)}calculateDefaultRetryTimeoutMillis(A,q){let F=q-A,K=Math.min(0.5*Math.pow(2,F),8),Z=1-Math.random()*0.25;return K*Z*1000}async buildRequest(A,{retryCount:q=0}={}){let g={...A},{method:E,path:F,query:K,defaultBaseURL:Z}=g,j=this.buildURL(F,K,Z);if("timeout"in g)BM("timeout",g.timeout);g.timeout=g.timeout??this.timeout;let{bodyHeaders:U,body:G}=this.buildBody({options:g}),Y=await this.buildHeaders({options:A,method:E,bodyHeaders:U,retryCount:q});return{req:{method:E,headers:Y,...g.signal&&{signal:g.signal},...globalThis.ReadableStream&&G instanceof globalThis.ReadableStream&&{duplex:"half"},...G&&{body:G},...this.fetchOptions??{},...g.fetchOptions??{}},url:j,timeout:g.timeout}}async buildHeaders({options:A,method:q,bodyHeaders:g,retryCount:E}){let F={};if(this.idempotencyHeader&&q!=="get"){if(!A.idempotencyKey)A.idempotencyKey=this.defaultIdempotencyKey();F[this.idempotencyHeader]=A.idempotencyKey}let K=D([F,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(E),...A.timeout?{"X-Stainless-Timeout":String(Math.trunc(A.timeout/1000))}:{},...bM(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(A),this._options.defaultHeaders,g,A.headers]);return this.validateHeaders(K),K.values}buildBody({options:{body:A,headers:q}}){if(!A)return{bodyHeaders:void 0,body:void 0};let g=D([q]);if(ArrayBuffer.isView(A)||A instanceof ArrayBuffer||A instanceof DataView||typeof A==="string"&&g.values.has("content-type")||globalThis.Blob&&A instanceof globalThis.Blob||A instanceof FormData||A instanceof URLSearchParams||globalThis.ReadableStream&&A instanceof globalThis.ReadableStream)return{bodyHeaders:void 0,body:A};else if(typeof A==="object"&&((Symbol.asyncIterator in A)||(Symbol.iterator in A)&&("next"in A)&&typeof A.next==="function"))return{bodyHeaders:void 0,body:eZ(A)};else return V(this,aj,"f").call(this,{body:A,headers:g})}}QY=e,aj=new WeakMap,YY=new WeakSet,k9=function A(){return this.baseURL!=="https://api.openai.com/v1"};e.OpenAI=QY;e.DEFAULT_TIMEOUT=600000;e.OpenAIError=d;e.APIError=VA;e.APIConnectionError=Q6;e.APIConnectionTimeoutError=O6;e.APIUserAbortError=IA;e.NotFoundError=dF;e.ConflictError=pF;e.RateLimitError=lF;e.BadRequestError=mF;e.AuthenticationError=fF;e.InternalServerError=iF;e.PermissionDeniedError=cF;e.UnprocessableEntityError=uF;e.InvalidWebhookSignatureError=Eg;e.toFile=Yj;e.Completions=GE;e.Chat=$6;e.Embeddings=QE;e.Files=JE;e.Images=XE;e.Audio=Ug;e.Moderations=LE;e.Models=HE;e.FineTuning=Cq;e.Graders=P6;e.VectorStores=vg;e.Webhooks=TE;e.Beta=wq;e.Batches=ZE;e.Uploads=R6;e.Responses=bg;e.Realtime=Dg;e.Conversations=I6;e.Evals=x6;e.Containers=T6;e.Videos=WE;function OY(A){return{anthropic:null,openai:null,provider:A,storyContext:"",isStreaming:!1}}function JY(A){let q=A.url||`https://news.ycombinator.com/item?id=${A.id}`,g=`# Story Being Discussed
|
|
154
163
|
|
|
155
164
|
`;if(g+=`**Title:** ${A.title}
|
|
156
165
|
`,g+=`**URL:** ${q}
|
|
@@ -159,40 +168,67 @@ https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
|
|
|
159
168
|
`;if(A.user)g+=`**Posted by:** ${A.user}
|
|
160
169
|
`;if(g+=`**Comments:** ${A.comments_count}
|
|
161
170
|
|
|
162
|
-
`,A.content)g+=`## Story
|
|
171
|
+
`,A.content)g+=`## Story Text
|
|
172
|
+
|
|
173
|
+
${Ng(A.content)}
|
|
163
174
|
|
|
164
|
-
|
|
175
|
+
`;if(A.comments&&A.comments.length>0)g+=`# Hacker News Discussion
|
|
165
176
|
|
|
166
|
-
|
|
177
|
+
`,g+=`The following are comments from the Hacker News community discussing this story:
|
|
167
178
|
|
|
168
|
-
`,g+=
|
|
179
|
+
`,g+=D9(A.comments);return g}function D9(A,q=0){let g="",E=" ".repeat(q);for(let F of A)if(F.user&&F.content){let K=Ng(F.content);g+=`${E}**${F.user}:**
|
|
169
180
|
`;let Z=K.split(`
|
|
170
181
|
`).map((j)=>`${E}${j}`).join(`
|
|
171
182
|
`);if(g+=`${Z}
|
|
172
183
|
|
|
173
|
-
`,F.comments&&F.comments.length>0)g+=
|
|
184
|
+
`,F.comments&&F.comments.length>0)g+=D9(F.comments,q+1)}return g}async function y9(A,q,g,E,F){if(A.isStreaming=!0,!A.storyContext)A.storyContext=JY(E);let K=E.url||"",Z=`You are helping a user understand and discuss a Hacker News story.
|
|
174
185
|
|
|
175
|
-
${
|
|
186
|
+
${A.storyContext}
|
|
176
187
|
|
|
177
188
|
---
|
|
178
189
|
|
|
179
|
-
|
|
190
|
+
IMPORTANT CONTEXT DISTINCTION:
|
|
191
|
+
- The "Story Being Discussed" section above contains metadata about the linked article/content
|
|
192
|
+
- The "Hacker News Discussion" section contains community comments ABOUT that story
|
|
193
|
+
- If the user asks about the original article/video content, use web search to fetch and read the URL: ${K}
|
|
180
194
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
Check your ${Z} API key in ~/.config/hn-cli/config.json`,this.renderChatMessages()}this.isStreaming=!1}async streamAnthropicResponse(A,q,g){if(!this.anthropic){let K=zg("anthropic");this.anthropic=new Iq({apiKey:K})}let E=this.anthropic.messages.stream({model:X6("anthropic"),max_tokens:4096,system:q,messages:this.chatMessages.slice(0,-1).map((K)=>({role:K.role,content:K.content})).concat([{role:"user",content:A}])}),F="";E.on("text",(K)=>{if(F+=K,this.chatMessages[g])this.chatMessages[g].content=F,this.renderChatMessages()}),await E.finalMessage()}async streamOpenAIResponse(A,q,g){if(JA("[openai-stream] Starting stream..."),!this.openai){let Z=zg("openai");JA("[openai-stream] Initializing client, API key exists:",!!Z),this.openai=new e({apiKey:Z})}let E=X6("openai");JA("[openai-stream] Model:",E),JA("[openai-stream] Message count:",this.chatMessages.length);let F=await this.openai.chat.completions.create({model:E,max_completion_tokens:4096,stream:!0,messages:[{role:"system",content:q},...this.chatMessages.slice(0,-1).map((Z)=>({role:Z.role,content:Z.content})),{role:"user",content:A}]});JA("[openai-stream] Stream created, reading chunks...");let K="";for await(let Z of F){let j=Z.choices[0]?.delta?.content;if(j){if(K+=j,this.chatMessages[g])this.chatMessages[g].content=K,this.renderChatMessages()}}JA("[openai-stream] Stream complete, response length:",K.length)}createShortcutsBar(){let A=new s(this.ctx,{width:"100%",height:3,flexDirection:"row",alignItems:"center",paddingLeft:2,paddingRight:2,paddingBottom:1,backgroundColor:h.bg,borderStyle:"single",border:["top"],borderColor:h.border,gap:2});return[{key:"j/k",desc:"stories"},{key:"\u2318j/k",desc:"comments"},{key:"o",desc:"open"},{key:"c",desc:"chat"},{key:"q",desc:"quit"}].forEach(({key:g,desc:E})=>{let F=new s(this.ctx,{flexDirection:"row",gap:1}),K=new o(this.ctx,{content:g,fg:h.accent}),Z=new o(this.ctx,{content:E,fg:h.textDim});F.add(K),F.add(Z),A.add(F)}),A}setupKeyboardHandlers(){this.renderer.keyInput.on("keypress",(A)=>{if(A.name==="q"||A.ctrl&&A.name==="c"){this.callbacks.onExit?.();return}if(this.settingsMode){if(A.name==="escape"){if(this.settingsSection==="model")this.settingsSection="main",this.settingsSelectedIndex=0,this.renderSettings();else this.hideSettings();return}if(A.name==="j"||A.name==="down")this.navigateSettings(1);else if(A.name==="k"||A.name==="up")this.navigateSettings(-1);else if(A.name==="return"||A.name==="enter")this.selectSettingsItem();return}if(this.authSetupMode){if(A.name==="escape"){this.hideAuthSetup();return}if(this.authSetupStep==="provider"){if(A.name==="j"||A.name==="down")this.authSelectedProvider="openai",this.renderAuthSetup();else if(A.name==="k"||A.name==="up")this.authSelectedProvider="anthropic",this.renderAuthSetup();else if(A.name==="return"||A.name==="enter")this.authSetupStep="key",this.renderAuthSetup()}return}if(this.chatMode){if(A.name==="escape"){this.hideChatView();return}if(A.name===","||A.sequence===","){this.showSettings();return}if(this.suggestions.length>0&&this.chatInput&&!this.chatInput.plainText.trim()){if(A.name==="up"||A.name==="k"){this.navigateSuggestion(-1);return}else if(A.name==="down"||A.name==="j"){this.navigateSuggestion(1);return}}if((A.name==="return"||A.name==="enter")&&!A.shift){if(this.chatInput&&this.chatInput.plainText.trim()){this.sendChatMessage();return}if(this.selectedSuggestionIndex>=0&&this.suggestions.length>0){this.selectSuggestion();return}return}if(this.suggestions.length>0&&A.sequence&&A.sequence.length===1&&!A.ctrl&&!A.meta){let g=A.sequence.charCodeAt(0);if(g>=32&&g<=126)this.suggestions=[],this.selectedSuggestionIndex=-1,this.renderSuggestions()}if(A.name==="backspace"&&this.chatInput&&this.originalSuggestions.length>0)setTimeout(()=>{if(this.chatInput&&!this.chatInput.plainText.trim()&&this.suggestions.length===0)this.suggestions=[...this.originalSuggestions],this.selectedSuggestionIndex=this.suggestions.length-1,this.renderSuggestions()},10);return}let q=A.super;if(A.name==="j"&&!q)this.navigateStory(1);else if(A.name==="k"&&!q)this.navigateStory(-1);else if(A.name==="j"&&q)this.navigateToNextComment();else if(A.name==="k"&&q)this.navigateToPreviousComment();else if(A.name==="o")this.openStoryUrl();else if(A.name==="c")this.openChat();else if(A.name==="r")this.refresh()})}async loadPosts(){this.startLoadingAnimation();try{this.posts=await YM(),this.stopLoadingAnimation(),this.renderStoryList(),this.renderEmptyDetail()}catch(A){this.stopLoadingAnimation(),JA("[ERROR]","Error loading posts:",A)}}renderStoryList(){for(let A of this.storyListScroll.getChildren())this.storyListScroll.remove(A.id);this.storyItems.clear(),this.posts.forEach((A,q)=>{let g=this.createStoryItem(A,q);this.storyItems.set(q,g),this.storyListScroll.add(g)})}createStoryItem(A,q){let g=q===this.selectedIndex,E=new s(this.ctx,{id:`story-${A.id}`,width:"100%",paddingTop:0,paddingBottom:0,backgroundColor:h.bg,flexDirection:"row",onMouseDown:()=>{this.selectStory(q)}}),F=new o(this.ctx,{id:`chevron-${A.id}`,content:g?"\u203A":" ",fg:g?h.accent:h.textVeryDim,width:2,paddingLeft:1});E.add(F);let K=new s(this.ctx,{id:`content-${A.id}`,flexGrow:1,flexDirection:"column",paddingRight:2});E.add(K);let Z=80,j=new o(this.ctx,{id:`title-${A.id}`,content:this.truncateText(A.title,Z),fg:g?h.accent:h.text,maxHeight:2});if(K.add(j),A.domain){let U=new o(this.ctx,{id:`domain-${A.id}`,content:A.domain,fg:h.textDim});K.add(U)}return E}async selectStory(A){if(A<0||A>=this.posts.length)return;if(this.renderer.isDestroyed)return;let q=this.selectedIndex;this.selectedIndex=A,this.rootCommentIndex=0,this.updateStoryItemStyle(q,!1),this.updateStoryItemStyle(A,!0);let g=this.posts[A];if(!g)return;try{let U=await GM(g.id);if(this.renderer.isDestroyed)return;if(U)this.selectedPost=U,this.renderDetail(U)}catch(U){JA("[ERROR]","Error loading post:",U)}if(this.renderer.isDestroyed)return;let E=2,F=A*E,K=F+E,Z=this.storyListScroll.height,j=this.storyListScroll.scrollTop;if(F<j)this.storyListScroll.scrollTop=F;else if(K>j+Z)this.storyListScroll.scrollTop=K-Z}updateStoryItemStyle(A,q){let g=this.storyItems.get(A);if(!g)return;if(!this.posts[A])return;let F=g.getChildren();if(F.length>=2){let K=F[0];if(K&&"content"in K)K.content=q?"\u203A":" ",K.fg=q?h.accent:h.textVeryDim;let j=F[1].getChildren();if(j.length>0){let U=j[0];if(U&&"content"in U)U.fg=q?h.accent:h.text}}}renderDetail(A){for(let F of this.detailHeader.getChildren())this.detailHeader.remove(F.id);for(let F of this.detailContent.getChildren())this.detailContent.remove(F.id);this.rootCommentBoxes=[];let q=new o(this.ctx,{content:A.title,fg:h.text,wrapMode:"word",flexShrink:0,maxHeight:2,onMouseDown:()=>this.openStoryUrl(),onMouseOver:()=>{q.fg=h.link},onMouseOut:()=>{q.fg=h.text}});if(this.detailHeader.add(q),A.domain){let F=new o(this.ctx,{content:A.domain,fg:h.textDim,flexShrink:0,maxHeight:1,onMouseDown:()=>this.openStoryUrl()});this.detailHeader.add(F)}if(A.content){let F=new s(this.ctx,{width:"100%",marginBottom:1}),K=new o(this.ctx,{content:this.stripHtml(A.content),fg:h.text,wrapMode:"word"});F.add(K),this.detailContent.add(F)}let g=new s(this.ctx,{width:"100%",flexDirection:"column"}),E=new o(this.ctx,{content:`${A.comments_count} comments`,fg:h.textDim});if(g.add(E),A.comments&&A.comments.length>0)A.comments.forEach((F,K)=>{let Z=this.renderComment(F,K);if(g.add(Z),F.level===0)this.rootCommentBoxes.push(Z)});else{let F=new o(this.ctx,{content:"No comments yet...",fg:h.textDim});g.add(F)}this.detailContent.add(g),this.detailScroll.scrollTop=0}renderEmptyDetail(){for(let q of this.detailHeader.getChildren())this.detailHeader.remove(q.id);for(let q of this.detailContent.getChildren())this.detailContent.remove(q.id);let A=new o(this.ctx,{content:"Select a story to view details",fg:h.textDim});this.detailHeader.add(A)}renderComment(A,q){let g=A.level===0,F={0:h.accent,1:h.commentL1,2:h.commentL2,3:h.commentL3}[A.level]??h.commentL3,K=new s(this.ctx,{id:`comment-wrapper-${A.id}`,width:"100%",marginTop:1,flexDirection:"row"});if(A.level>0){let U=new s(this.ctx,{width:A.level*2,flexShrink:0});K.add(U)}let Z=new s(this.ctx,{id:`comment-${A.id}`,flexGrow:1,flexShrink:1,paddingLeft:1,paddingRight:1,borderStyle:"single",border:["left"],borderColor:F,flexDirection:"column"}),j=new o(this.ctx,{content:A.user||"[deleted]",fg:g?h.accent:h.textDim});if(Z.add(j),A.content){let U=new o(this.ctx,{content:this.stripHtml(A.content),fg:h.text,wrapMode:"word"});Z.add(U)}else if(A.deleted){let U=new o(this.ctx,{content:"[deleted]",fg:h.textMuted});Z.add(U)}if(K.add(Z),A.comments&&A.comments.length>0){let U=new s(this.ctx,{width:"100%",flexDirection:"column"});A.comments.forEach((Y)=>{let M=this.renderComment(Y);U.add(M)});let O=new s(this.ctx,{width:"100%",flexDirection:"column"});return O.add(K),O.add(U),O}return K}navigateStory(A){if(this.posts.length===0)return;if(this.selectedIndex===-1){if(A>0)this.selectStory(0);else this.selectStory(this.posts.length-1);return}let q=this.selectedIndex+A;if(q>=0&&q<this.posts.length)this.selectStory(q)}navigateToNextComment(){if(!this.selectedPost)return;if(this.rootCommentBoxes.length===0)return;let A=this.rootCommentBoxes.length-1;if(this.rootCommentIndex<A)this.rootCommentIndex++,this.scrollToRootComment(this.rootCommentIndex)}navigateToPreviousComment(){if(!this.selectedPost)return;if(this.rootCommentBoxes.length===0)return;if(this.rootCommentIndex>0)this.rootCommentIndex--,this.scrollToRootComment(this.rootCommentIndex)}scrollToRootComment(A){if(A<0||A>=this.rootCommentBoxes.length)return;let q=this.rootCommentBoxes[A];if(!q)return;let g=this.detailScroll.content,E=q.y-g.y;this.detailScroll.scrollTop=Math.max(0,E-1)}openStoryUrl(){if(!this.selectedPost)return;let A=this.selectedPost.url||`https://news.ycombinator.com/item?id=${this.selectedPost.id}`;this.callbacks.onOpenUrl?.(A)}openOnHN(){if(!this.selectedPost)return;let A=`${vH}/${this.selectedPost.id}`;this.callbacks.onOpenUrl?.(A)}openChat(){if(!this.selectedPost)return;let A=JM();if(A)this.chatProvider=A,this.showChatView();else this.showAuthSetup()}showAuthSetup(){this.authSetupMode=!0,this.authSetupStep="provider",this.authSelectedProvider="anthropic",this.detailPanel.remove(this.detailHeader.id),this.detailPanel.remove(this.detailScroll.id),this.detailPanel.remove(this.shortcutsBar.id),this.renderAuthSetup()}hideAuthSetup(){this.authSetupMode=!1;for(let A of this.detailPanel.getChildren())this.detailPanel.remove(A.id);if(this.detailPanel.add(this.detailHeader),this.detailPanel.add(this.detailScroll),this.detailPanel.add(this.shortcutsBar),this.selectedPost)this.renderDetail(this.selectedPost)}renderAuthSetup(){for(let g of this.detailPanel.getChildren())this.detailPanel.remove(g.id);let A=new s(this.ctx,{width:"100%",height:"100%",flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:2,backgroundColor:h.bg}),q=new o(this.ctx,{content:"Set up AI Chat",fg:h.accent});if(A.add(q),A.add(new s(this.ctx,{height:1})),this.authSetupStep==="provider"){let g=new o(this.ctx,{content:"Choose your AI provider:",fg:h.text});A.add(g),A.add(new s(this.ctx,{height:1}));let E=new s(this.ctx,{flexDirection:"row",gap:1}),F=new o(this.ctx,{content:this.authSelectedProvider==="anthropic"?"\u25CF":"\u25CB",fg:this.authSelectedProvider==="anthropic"?h.accent:h.textDim}),K=new o(this.ctx,{content:"Anthropic",fg:this.authSelectedProvider==="anthropic"?h.accent:h.text});E.add(F),E.add(K),A.add(E);let Z=new s(this.ctx,{flexDirection:"row",gap:1}),j=new o(this.ctx,{content:this.authSelectedProvider==="openai"?"\u25CF":"\u25CB",fg:this.authSelectedProvider==="openai"?h.accent:h.textDim}),U=new o(this.ctx,{content:"OpenAI",fg:this.authSelectedProvider==="openai"?h.accent:h.text});Z.add(j),Z.add(U),A.add(Z),A.add(new s(this.ctx,{height:2}));let O=new o(this.ctx,{content:"\u2191/\u2193 to select, Enter to continue, Esc to cancel",fg:h.textDim});A.add(O)}else if(this.authSetupStep==="key"){let g=this.authSelectedProvider==="anthropic"?"Anthropic":"OpenAI",E=new o(this.ctx,{content:`Enter your ${g} API key:`,fg:h.text});A.add(E),A.add(new s(this.ctx,{height:1}));let F=new s(this.ctx,{width:"100%",flexDirection:"row",gap:1}),K=new o(this.ctx,{content:"\u203A",fg:h.accent});F.add(K),this.authKeyInput=new ZZ(this.ctx,{width:"100%",flexGrow:1,placeholder:this.authSelectedProvider==="anthropic"?"sk-ant-...":"sk-...",backgroundColor:h.bg}),this.authKeyInput.on("enter",()=>{this.saveApiKey()}),F.add(this.authKeyInput),A.add(F),A.add(new s(this.ctx,{height:2}));let Z=new o(this.ctx,{content:"Your key is stored locally at ~/.config/hn-cli/config.json",fg:h.textDim,wrapMode:"word"});A.add(Z),A.add(new s(this.ctx,{height:1}));let j=new o(this.ctx,{content:"This app is open source: github.com/brianlovin/hn-cli",fg:h.textDim,wrapMode:"word"});A.add(j),A.add(new s(this.ctx,{height:2}));let U=new o(this.ctx,{content:"Enter to save, Esc to cancel",fg:h.textDim});A.add(U),setTimeout(()=>{if(this.authKeyInput)this.authKeyInput.focus(),this.authKeyInput.value=""},50)}this.detailPanel.add(A)}saveApiKey(){if(!this.authKeyInput)return;let A=this.authKeyInput.value.trim();if(!A)return;let q=hg();if(q.provider=this.authSelectedProvider,this.authSelectedProvider==="anthropic")q.anthropicApiKey=A;else q.openaiApiKey=A;TK(q),this.hideAuthSetup(),this.chatProvider=this.authSelectedProvider,this.showChatView()}showSettings(){this.settingsMode=!0,this.settingsSection="main",this.settingsSelectedIndex=0;for(let A of this.detailPanel.getChildren())this.detailPanel.remove(A.id);this.renderSettings()}hideSettings(){this.settingsMode=!1;for(let A of this.detailPanel.getChildren())this.detailPanel.remove(A.id);if(this.createChatPanel(),this.chatPanel)for(let A of this.chatPanel.getChildren())this.detailPanel.add(A);if(this.chatInput)this.chatInput.focus(),this.chatInput.clear();this.renderSuggestions()}getSettingsItems(){let A=!!zg("anthropic"),q=!!zg("openai"),g=[];g.push({label:`Provider: ${this.chatProvider==="anthropic"?"Anthropic":"OpenAI"}`,action:"switch_provider",enabled:A&&q});let E=X6(this.chatProvider),K=(this.chatProvider==="anthropic"?NK:xK).find((Z)=>Z.id===E)?.name||E;if(g.push({label:`Model: ${K}`,action:"change_model",enabled:!0}),!A)g.push({label:"Add Anthropic API key",action:"add_anthropic",enabled:!0});if(!q)g.push({label:"Add OpenAI API key",action:"add_openai",enabled:!0});if(A||q)g.push({label:"Clear all API keys",action:"clear_keys",enabled:!0});return g}renderSettings(){for(let g of this.detailPanel.getChildren())this.detailPanel.remove(g.id);let A=new s(this.ctx,{width:"100%",height:"100%",flexDirection:"column",paddingLeft:2,paddingRight:2,paddingTop:2,backgroundColor:h.bg}),q=new o(this.ctx,{content:"Settings",fg:h.accent});if(A.add(q),A.add(new s(this.ctx,{height:1})),this.settingsSection==="main"){this.getSettingsItems().forEach((F,K)=>{let Z=K===this.settingsSelectedIndex,j=new s(this.ctx,{flexDirection:"row",gap:1}),U=new o(this.ctx,{content:Z?"\u203A":" ",fg:h.accent});j.add(U);let O=new o(this.ctx,{content:F.label,fg:Z?h.accent:F.enabled?h.text:h.textDim});j.add(O),A.add(j)}),A.add(new s(this.ctx,{height:2}));let E=new o(this.ctx,{content:"\u2191/\u2193 navigate Enter select Esc back",fg:h.textDim});A.add(E)}else if(this.settingsSection==="model"){let g=this.settingsModelProvider==="anthropic"?NK:xK,E=X6(this.settingsModelProvider),F=new o(this.ctx,{content:`Select ${this.settingsModelProvider==="anthropic"?"Anthropic":"OpenAI"} model:`,fg:h.text});A.add(F),A.add(new s(this.ctx,{height:1})),g.forEach((Z,j)=>{let U=j===this.settingsSelectedIndex,O=Z.id===E,Y=new s(this.ctx,{flexDirection:"row",gap:1}),M=new o(this.ctx,{content:U?"\u203A":" ",fg:h.accent});Y.add(M);let J=new o(this.ctx,{content:O?"\u25CF":"\u25CB",fg:O?h.accent:h.textDim});Y.add(J);let $=new o(this.ctx,{content:Z.name,fg:U?h.accent:h.text});Y.add($),A.add(Y)}),A.add(new s(this.ctx,{height:2}));let K=new o(this.ctx,{content:"\u2191/\u2193 navigate Enter select Esc back",fg:h.textDim});A.add(K)}this.detailPanel.add(A)}navigateSettings(A){let q;if(this.settingsSection==="main")q=this.getSettingsItems().length-1;else q=(this.settingsModelProvider==="anthropic"?NK:xK).length-1;this.settingsSelectedIndex=Math.max(0,Math.min(q,this.settingsSelectedIndex+A)),this.renderSettings()}selectSettingsItem(){if(this.settingsSection==="main"){let q=this.getSettingsItems()[this.settingsSelectedIndex];if(!q||!q.enabled)return;switch(q.action){case"switch_provider":this.chatProvider=this.chatProvider==="anthropic"?"openai":"anthropic";let g=hg();g.provider=this.chatProvider,TK(g),this.anthropic=null,this.openai=null,this.renderSettings();break;case"change_model":this.settingsSection="model",this.settingsModelProvider=this.chatProvider,this.settingsSelectedIndex=0,this.renderSettings();break;case"add_anthropic":this.hideSettings(),this.authSelectedProvider="anthropic",this.authSetupStep="key",this.authSetupMode=!0,this.chatMode=!1,this.renderAuthSetup();break;case"add_openai":this.hideSettings(),this.authSelectedProvider="openai",this.authSetupStep="key",this.authSetupMode=!0,this.chatMode=!1,this.renderAuthSetup();break;case"clear_keys":_M(),this.anthropic=null,this.openai=null,this.hideSettings(),this.hideChatView();break}}else if(this.settingsSection==="model"){let q=(this.settingsModelProvider==="anthropic"?NK:xK)[this.settingsSelectedIndex];if(q){if(MM(this.settingsModelProvider,q.id),this.settingsModelProvider==="anthropic")this.anthropic=null;else this.openai=null;this.settingsSection="main",this.settingsSelectedIndex=1,this.renderSettings()}}}navigateSuggestion(A){if(this.suggestions.length===0)return;let q=this.selectedSuggestionIndex+A;this.selectedSuggestionIndex=Math.max(0,Math.min(this.suggestions.length-1,q)),this.renderSuggestions()}selectSuggestion(){if(this.selectedSuggestionIndex<0||this.selectedSuggestionIndex>=this.suggestions.length)return;let A=this.suggestions[this.selectedSuggestionIndex];if(!A)return;if(this.chatInput)this.chatInput.clear(),this.chatInput.insertText(A);this.suggestions=[],this.selectedSuggestionIndex=-1,this.renderSuggestions(),this.sendChatMessage()}renderSuggestions(){if(!this.suggestionsContainer)return;for(let A of this.suggestionsContainer.getChildren())this.suggestionsContainer.remove(A.id);if(this.suggestionsLoading){let A=new o(this.ctx,{id:"suggestions-loading",content:`${H6.LOADING_CHARS[this.loadingFrame]??"\u280B"} Generating suggestions...`,fg:h.textDim});this.suggestionsContainer.add(A);return}if(this.suggestions.length===0)return;for(let A=0;A<this.suggestions.length;A++){let q=this.suggestions[A];if(!q)continue;let g=A===this.selectedSuggestionIndex,E=new s(this.ctx,{id:`suggestion-row-${A}`,width:"100%",flexDirection:"row",backgroundColor:h.bg}),F=new o(this.ctx,{id:`suggestion-indicator-${A}`,content:g?"\u203A ":" ",fg:h.accent,width:2});E.add(F);let K=new o(this.ctx,{id:`suggestion-text-${A}`,content:q,fg:g?h.accent:h.textDim});E.add(K),this.suggestionsContainer.add(E)}}async generateSuggestions(){if(!this.selectedPost||this.suggestionsGenerated)return;JA("[suggestions] Starting generation..."),JA("[suggestions] Provider:",this.chatProvider),this.suggestionsGenerated=!0,this.suggestionsLoading=!0;let A=setInterval(()=>{if(!this.renderer.isDestroyed&&this.suggestionsLoading)this.loadingFrame=(this.loadingFrame+1)%H6.LOADING_CHARS.length,this.renderSuggestions()},80),q=this.selectedPost,g=q.comments?.slice(0,3).map((F)=>`${F.user}: ${this.stripHtml(F.content||"").slice(0,100)}...`).join(`
|
|
195
|
+
The user is reading this in a terminal app. Be concise but insightful. When you search the web for article content, clearly distinguish between what's in the article versus what's being discussed in the HN comments.`;try{if(A.provider==="anthropic")await S1(A,q,g,Z,K,F);else await a1(A,q,g,Z,K,F)}catch(j){F.onError(j instanceof Error?j:new Error(String(j)))}A.isStreaming=!1}async function S1(A,q,g,E,F,K){if(!A.anthropic){let G=lA("anthropic");A.anthropic=new oA({apiKey:G})}let Z=F?[{type:"web_search_20250305",name:"web_search",max_uses:3}]:[],j=A.anthropic.messages.stream({model:sE("anthropic"),max_tokens:4096,system:E,tools:Z.length>0?Z:void 0,messages:q.slice(0,-1).map((G)=>({role:G.role,content:G.content})).concat([{role:"user",content:g}])}),U="";j.on("text",(G)=>{U+=G,K.onText(U)}),await j.finalMessage(),K.onComplete()}async function a1(A,q,g,E,F,K){if(FA("[openai-stream] Starting stream..."),!A.openai){let G=lA("openai");FA("[openai-stream] Initializing client, API key exists:",!!G),A.openai=new e({apiKey:G})}let Z=sE("openai");if(FA("[openai-stream] Model:",Z),FA("[openai-stream] Message count:",q.length),F)try{FA("[openai-stream] Using Responses API stream with web_search tool");let G=A.openai.responses.stream({model:Z,tools:[{type:"web_search"}],input:[{role:"developer",content:E},...q.slice(0,-1).map((Y)=>({role:Y.role,content:Y.content})),{role:"user",content:g}]});G.on("response.output_text.delta",(Y)=>{K.onText(Y.snapshot)}),await G.finalResponse(),FA("[openai-stream] Responses API stream complete"),K.onComplete();return}catch(G){let Y=G instanceof Error?G.message:String(G);FA("[openai-stream] Responses API failed, falling back to chat completions without web search. Error:",Y)}let j=await A.openai.chat.completions.create({model:Z,max_completion_tokens:4096,stream:!0,messages:[{role:"system",content:E},...q.slice(0,-1).map((G)=>({role:G.role,content:G.content})),{role:"user",content:g}]});FA("[openai-stream] Stream created, reading chunks...");let U="";for await(let G of j){let Y=G.choices[0]?.delta?.content;if(Y)U+=Y,K.onText(U)}FA("[openai-stream] Stream complete, response length:",U.length),K.onComplete()}async function b9(A,q){let g=q.comments?.slice(0,3).map((F)=>`${F.user}: ${Ng(F.content||"").slice(0,100)}...`).join(`
|
|
184
196
|
`)||"No comments yet",E=`Based on this Hacker News story, generate 3 short questions (max 10 words each) a reader might want to ask. Return ONLY the 3 questions, one per line, no numbering or bullets.
|
|
185
197
|
|
|
186
198
|
Title: ${q.title}
|
|
187
199
|
Domain: ${q.domain||"N/A"}
|
|
188
200
|
Comments preview:
|
|
189
|
-
${g}`;try{let F=[];if(
|
|
190
|
-
`).filter((
|
|
191
|
-
`).filter((
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
201
|
+
${g}`;try{let F=[];if(A.provider==="anthropic"){if(FA("[suggestions] Using Anthropic API with cheap model"),!A.anthropic){let U=lA("anthropic");FA("[suggestions] API key exists:",!!U),A.anthropic=new oA({apiKey:U})}FA("[suggestions] Model:",A6);let K=await A.anthropic.messages.create({model:A6,max_tokens:1024,messages:[{role:"user",content:E}]});FA("[suggestions] Anthropic response received");let Z=K.content[0];F=(Z&&Z.type==="text"?Z.text:"").split(`
|
|
202
|
+
`).filter((U)=>U.trim()).slice(0,3)}else{if(FA("[suggestions] Using OpenAI API with cheap model"),!A.openai){let j=lA("openai");FA("[suggestions] API key exists:",!!j),A.openai=new e({apiKey:j})}FA("[suggestions] Model:",Vg),FA("[suggestions] Making OpenAI request...");let K=await A.openai.chat.completions.create({model:Vg,max_completion_tokens:1024,messages:[{role:"user",content:E}]});FA("[suggestions] OpenAI response received:",JSON.stringify(K.choices[0],null,2)),F=(K.choices[0]?.message?.content||"").split(`
|
|
203
|
+
`).filter((j)=>j.trim()).slice(0,3)}return FA("[suggestions] Generated questions:",F),F}catch(F){return FA("[ERROR]","[suggestions] Error generating suggestions:"),FA("[ERROR]","[suggestions] Error type:",F?.constructor?.name),FA("[ERROR]","[suggestions] Error message:",F instanceof Error?F.message:String(F)),[]}}async function v9(A,q,g){let E=g.slice(-4).filter((K)=>K.content.length<500).map((K)=>`${K.role==="user"?"User":"Assistant"}: ${K.content}`).join(`
|
|
204
|
+
`),F=`Based on this conversation about a Hacker News story, suggest 3 natural follow-up questions the user might want to ask next. The questions should:
|
|
205
|
+
- Build on what was just discussed
|
|
206
|
+
- Explore related angles or deeper aspects
|
|
207
|
+
- Be concise (max 12 words each)
|
|
208
|
+
|
|
209
|
+
Story: "${q.title}"
|
|
210
|
+
Recent conversation:
|
|
211
|
+
${E}
|
|
212
|
+
|
|
213
|
+
Return ONLY the 3 questions, one per line, no numbering or bullets.`;try{if(A.provider==="anthropic"){if(!A.anthropic){let U=lA("anthropic");A.anthropic=new oA({apiKey:U})}let Z=(await A.anthropic.messages.create({model:A6,max_tokens:256,messages:[{role:"user",content:F}]})).content[0];return(Z&&Z.type==="text"?Z.text:"").split(`
|
|
214
|
+
`).filter((U)=>U.trim()).slice(0,3)}else{if(!A.openai){let j=lA("openai");A.openai=new e({apiKey:j})}return((await A.openai.chat.completions.create({model:Vg,max_completion_tokens:256,messages:[{role:"user",content:F}]})).choices[0]?.message?.content||"").split(`
|
|
215
|
+
`).filter((j)=>j.trim()).slice(0,3)}}catch(K){return FA("[ERROR]","[follow-up] Error:",K),[]}}function MY(A){A.anthropic=null,A.openai=null}function m9(A,q){A.provider=q}var _Y=`You are summarizing a Hacker News story for a terminal app. Be extremely concise.
|
|
216
|
+
|
|
217
|
+
IMPORTANT: Output ONLY the summary. Do not include any thinking, planning, or meta-commentary like "I need to search for...", "Let me...", "I'll...", etc.
|
|
218
|
+
|
|
219
|
+
Format your response exactly like this (use the exact separator):
|
|
220
|
+
[2-3 sentences summarizing the article. Key points only.]
|
|
221
|
+
---DISCUSSION---
|
|
222
|
+
[2-3 sentences summarizing the HN discussion. Main themes and notable opinions only.]
|
|
223
|
+
|
|
224
|
+
Rules:
|
|
225
|
+
- No headers, labels, or markdown formatting
|
|
226
|
+
- No preamble, intro text, or thinking out loud
|
|
227
|
+
- Keep each section to 2-3 sentences maximum
|
|
228
|
+
- Be direct and dense with information
|
|
229
|
+
- Use exactly "---DISCUSSION---" as the separator between sections
|
|
230
|
+
- Start immediately with the article summary content`,h1=[/^I need to .+?\./i,/^I('ll| will) .+?\./i,/^Let me .+?\./i,/^First,? I .+?\./i,/^To .+?, I .+?\./i,/^I should .+?\./i,/^I'm going to .+?\./i,/^Now I .+?\./i,/^Based on .+?, I .+?\./i];function f9(A){let q=A.trim(),g=!0;while(g){g=!1;for(let E of h1){let F=q.match(E);if(F&&q.indexOf(F[0])===0){q=q.slice(F[0].length).trim(),g=!0;break}}}return q}function $Y(A){let q=A.split("---DISCUSSION---"),g=f9(q[0]||""),E=f9(q[1]||"");if(q.length===1&&g.length>0){let F=[/\n\n(?:The discussion|Discussion|Comments|HN comments|The HN discussion)/i,/\n\n(?:Commenters|Users|Readers)/i];for(let K of F){let Z=g.match(K);if(Z&&Z.index!==void 0){E=g.slice(Z.index).trim(),g=g.slice(0,Z.index).trim();break}}if(!E)FA("[tldr] Warning: No discussion separator found in response")}return{articleSummary:g,discussionSummary:E}}async function c9(A,q,g){let E=JY(A),F=A.url||"",K=`Please provide a TLDR for this story and its discussion.
|
|
231
|
+
|
|
232
|
+
${E}`;try{if(q==="anthropic")await z1(F,K,g);else await B1(F,K,g)}catch(Z){FA("[ERROR]","[tldr] Error generating TLDR:",Z),g.onError(Z instanceof Error?Z:new Error(String(Z)))}}async function z1(A,q,g){let E=lA("anthropic");if(!E)throw new Error("Anthropic API key not configured");let F=new oA({apiKey:E}),Z=A?[{type:"web_search_20250305",name:"web_search",max_uses:2}]:[];FA("[tldr] Generating TLDR with Anthropic, model:",A6);let j=await F.messages.create({model:A6,max_tokens:1024,system:_Y,tools:Z.length>0?Z:void 0,messages:[{role:"user",content:q}]}),U="";for(let G of j.content)if(G.type==="text")U+=G.text;FA("[tldr] TLDR generated, length:",U.length),g.onComplete($Y(U))}async function B1(A,q,g){let E=lA("openai");if(!E)throw new Error("OpenAI API key not configured");let F=new e({apiKey:E});if(FA("[tldr] Generating TLDR with OpenAI, model:",Vg),A)try{let j=await F.responses.create({model:Vg,tools:[{type:"web_search"}],input:[{role:"developer",content:_Y},{role:"user",content:q}]}),U="";for(let G of j.output)if(G.type==="message"&&G.content){for(let Y of G.content)if(Y.type==="output_text")U+=Y.text}FA("[tldr] TLDR generated via Responses API, length:",U.length),g.onComplete($Y(U));return}catch(j){if(!(j instanceof Error&&(j.message.includes("not found")||j.message.includes("does not exist")||j.message.includes("unsupported"))))throw j;FA("[tldr] Responses API not available, falling back to chat completions:",j)}let Z=(await F.chat.completions.create({model:Vg,max_completion_tokens:1024,messages:[{role:"system",content:_Y},{role:"user",content:q}]})).choices[0]?.message?.content||"";FA("[tldr] TLDR generated via Chat Completions, length:",Z.length),g.onComplete($Y(Z))}import{existsSync as HY,mkdirSync as w1,readFileSync as C1,writeFileSync as k1,unlinkSync as D1}from"fs";import{join as d9}from"path";import{tmpdir as y1}from"os";var XY=d9(y1(),"hn-cli-cache"),bK=d9(XY,"state.json"),b1=300000;function v1(){if(!HY(XY))w1(XY,{recursive:!0})}function p9(){try{if(!HY(bK))return null;let A=C1(bK,"utf-8"),q=JSON.parse(A);if(Date.now()-q.storiesFetchedAt>b1)return{...q,posts:[],selectedIndex:-1,selectedPost:null,rootCommentIndex:0,chatMode:!1,settingsMode:!1};return q}catch{return null}}function u9(A){try{v1(),A.savedAt=Date.now(),k1(bK,JSON.stringify(A,null,2))}catch{}}function l9(){try{if(HY(bK))D1(bK)}catch{}}function i9(A){let q={};for(let[g,E]of A)q[String(g)]=E;return q}function t9(A){let q=new Map;for(let[g,E]of Object.entries(A))q.set(Number(g),E);return q}function s9(A){let q={};for(let[g,E]of A)q[String(g)]=E;return q}function n9(A){let q=new Map;for(let[g,E]of Object.entries(A))q.set(Number(g),E);return q}var m1=3;class LY{renderer;ctx;callbacks;posts=[];selectedIndex=-1;selectedPost=null;rootCommentIndex=0;contentArea;headerState;storyListState;storyDetailState;emptyStateState;chatPanelState=null;authSetupState=null;settingsState=null;chatServiceState=null;savedChatSessions=new Map;storyViewModes=new Map;chatMode=!1;authSetupMode=!1;settingsMode=!1;authSetupFromSettings=!1;settingsFromChatMode=!1;settingsIntent="settings";updateInfo=null;followUpCount=0;pendingGenerationStoryIds=new Set;suggestionLoadingInterval=null;storiesFetchedAt=0;tldrCache=new Map;tldrErrorIds=new Set;tldrLoading=!1;tldrLoadingStoryId=null;tldrLoadingFrame=0;tldrLoadingInterval=null;aiActiveIndices=new Set;aiIndicatorFrame=0;aiIndicatorInterval=null;constructor(A,q={}){this.renderer=A,this.ctx=A,this.callbacks=q}saveToCache(){let A={posts:this.posts,selectedIndex:this.selectedIndex,selectedPost:this.selectedPost,rootCommentIndex:this.rootCommentIndex,chatMode:this.chatMode,settingsMode:this.settingsMode,chatSessions:i9(this.savedChatSessions),storyViewModes:s9(this.storyViewModes),storiesFetchedAt:this.storiesFetchedAt,savedAt:Date.now()};u9(A)}async initialize(){await ZJ(this.renderer),this.setupLayout(),this.setupKeyboardHandlers();let A=p9();if(A&&A.posts.length>0)await this.restoreFromCache(A);else await this.loadPosts()}async restoreFromCache(A){if(this.posts=A.posts,this.storiesFetchedAt=A.storiesFetchedAt,this.savedChatSessions=t9(A.chatSessions),this.storyViewModes=A.storyViewModes?n9(A.storyViewModes):new Map,this.contentArea.remove(this.emptyStateState.container.id),this.contentArea.add(this.storyListState.panel),this.contentArea.add(this.storyDetailState.panel),IZ(this.storyDetailState),TZ(this.ctx,this.storyListState,this.posts,A.selectedIndex,{onSelect:(q)=>this.selectStory(q)}),A.selectedIndex>=0&&A.selectedIndex<this.posts.length){if(await this.selectStory(A.selectedIndex),A.chatMode&&this.selectedPost)this.showChatView();else if(A.settingsMode)this.showSettings()}else if(this.posts.length>0)await this.selectStory(0)}initializeForTesting(){this.setupLayout(),this.setupKeyboardHandlers()}setUpdateInfo(A){this.updateInfo=A,OJ(this.headerState,this.updateInfo)}startHeaderLoading(){JJ(this.headerState,()=>this.renderer.isDestroyed)}stopHeaderLoading(){MJ(this.headerState)}setupLayout(){let A=new b(this.ctx,{width:"100%",height:"100%",flexDirection:"column",backgroundColor:I.bg,paddingTop:1}),{header:q,state:g}=QJ(this.ctx,{onOpenGitHub:()=>{this.callbacks.onOpenUrl?.("https://github.com/brianlovin/hn-cli")}});this.headerState=g,this.contentArea=new b(this.ctx,{id:"content-area",width:"100%",flexGrow:1,flexDirection:"row"}),this.storyListState=VJ(this.ctx),this.storyDetailState=xJ(this.ctx,{onOpenStoryUrl:()=>this.openStoryUrl()}),this.emptyStateState=SJ(this.ctx),this.contentArea.add(this.emptyStateState.container),A.add(q),A.add(this.contentArea),this.renderer.root.add(A)}setupKeyboardHandlers(){this.renderer.keyInput.on("keypress",(A)=>{if(A.ctrl&&A.name==="c"){this.callbacks.onExit?.();return}if(A.super&&A.name==="c"){this.copySelectionToClipboard();return}if(this.settingsMode&&this.settingsState){this.handleSettingsKey(A);return}if(this.authSetupMode&&this.authSetupState){this.handleAuthSetupKey(A);return}if(this.chatMode&&this.chatPanelState){this.handleChatKey(A);return}this.handleMainKey(A)})}handleSettingsKey(A){if(!this.settingsState)return;if(A.name==="escape"){if(!vJ(this.settingsState))this.hideSettings();else this.rerenderSettings();return}if(A.name==="j"||A.name==="down")EG(this.settingsState,1,Wg()||"anthropic"),this.rerenderSettings();else if(A.name==="k"||A.name==="up")EG(this.settingsState,-1,Wg()||"anthropic"),this.rerenderSettings();else if(A.name==="return"||A.name==="enter"){let q=bJ(this.settingsState,Wg()||"anthropic");if(q)this.handleSettingsAction(q)}}handleSettingsAction(A){switch(A.type){case"switch_provider":let q=q6();if(q.provider=A.provider,tE(q),this.chatServiceState)m9(this.chatServiceState,A.provider),MY(this.chatServiceState);this.rerenderSettings();break;case"done":this.hideSettings();break;case"add_anthropic":this.authSetupFromSettings=!0,this.settingsMode=!1,this.settingsState=null;for(let g of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(g.id);this.authSetupState=RZ(),this.authSetupState.selectedProvider="anthropic",this.authSetupState.step="key",this.authSetupMode=!0,this.showAuthSetupUI();break;case"add_openai":this.authSetupFromSettings=!0,this.settingsMode=!1,this.settingsState=null;for(let g of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(g.id);this.authSetupState=RZ(),this.authSetupState.selectedProvider="openai",this.authSetupState.step="key",this.authSetupMode=!0,this.showAuthSetupUI();break;case"clear_keys":KJ(),this.chatServiceState=null,this.chatMode=!1,this.settingsFromChatMode=!1,this.savedChatSessions.clear(),this.storyViewModes.clear(),this.hideSettings();break;case"select_model":if(FJ(A.provider,A.modelId),this.chatServiceState)MY(this.chatServiceState);this.rerenderSettings();break}}handleAuthSetupKey(A){if(!this.authSetupState)return;if(A.name==="escape"){this.hideAuthSetup();return}if(this.authSetupState.step==="provider"){if(A.name==="j"||A.name==="down")qG(this.authSetupState,1),this.showAuthSetupUI();else if(A.name==="k"||A.name==="up")qG(this.authSetupState,-1),this.showAuthSetupUI();else if(A.name==="return"||A.name==="enter")kJ(this.authSetupState),this.showAuthSetupUI()}}handleChatKey(A){if(!this.chatPanelState)return;if(A.name==="escape"){this.hideChatView();return}if(A.super&&(A.name==="j"||A.name==="k")){let g=A.name==="j"?1:-1;this.navigateStory(g);return}let q=this.chatPanelState.suggestions;if(q.suggestions.length>0&&this.chatPanelState.input&&!this.chatPanelState.input.plainText.trim()){if(A.name==="up"||A.name==="k"){if(q.selectedIndex===-1)q.selectedIndex=q.suggestions.length-1;else if(q.selectedIndex>0)q.selectedIndex--;this.chatPanelState.input.blur(),aA(this.ctx,q);return}else if(A.name==="down"||A.name==="j"){if(q.selectedIndex===q.suggestions.length-1)q.selectedIndex=-1,this.chatPanelState.input.focus();else if(q.selectedIndex>=0)q.selectedIndex++,this.chatPanelState.input.blur();aA(this.ctx,q);return}}if(A.name==="tab"&&q.selectedIndex>=0&&q.suggestions.length>0){let g=q.suggestions[q.selectedIndex];if(g&&this.chatPanelState.input){this.chatPanelState.input.focus(),this.chatPanelState.input.clear(),this.chatPanelState.input.insertText(g+" "),q.suggestions=[],q.selectedIndex=-1,aA(this.ctx,q);return}}if((A.name==="return"||A.name==="enter")&&!A.shift){if(this.chatPanelState.input&&this.chatPanelState.input.plainText.trim()){this.sendChatMessage();return}if(q.selectedIndex>=0&&q.suggestions.length>0){this.selectSuggestion();return}return}if(q.suggestions.length>0&&A.sequence&&A.sequence.length===1&&!A.ctrl&&!A.meta){let g=A.sequence.charCodeAt(0);if(g>=32&&g<=126){if(this.chatPanelState.input)this.chatPanelState.input.focus();q.suggestions=[],q.selectedIndex=-1,aA(this.ctx,q)}}if(A.name==="backspace"&&this.chatPanelState.input&&q.originalSuggestions.length>0)setTimeout(()=>{if(this.chatPanelState?.input&&!this.chatPanelState.input.plainText.trim()&&this.chatPanelState.suggestions.suggestions.length===0)this.chatPanelState.suggestions.suggestions=[...this.chatPanelState.suggestions.originalSuggestions],this.chatPanelState.suggestions.selectedIndex=this.chatPanelState.suggestions.suggestions.length-1,aA(this.ctx,this.chatPanelState.suggestions)},10)}handleMainKey(A){if(A.name==="s"){this.settingsIntent="settings",this.showSettings();return}if(A.name==="j")this.navigateStory(1);else if(A.name==="k")this.navigateStory(-1);else if(A.name==="space"||A.name===" ")this.navigateToNextComment();else if(A.name==="o")this.openStoryUrl();else if(A.name==="c")this.openChat();else if(A.name==="r")this.refresh();else if(A.name==="t")this.handleTldrRequest()}async loadPosts(){aJ(this.emptyStateState,"loading",()=>this.renderer.isDestroyed);try{if(this.posts=await rO(),this.storiesFetchedAt=Date.now(),nE(this.emptyStateState),this.contentArea.remove(this.emptyStateState.container.id),this.contentArea.add(this.storyListState.panel),this.contentArea.add(this.storyDetailState.panel),IZ(this.storyDetailState),TZ(this.ctx,this.storyListState,this.posts,this.selectedIndex,{onSelect:(A)=>this.selectStory(A)}),this.posts.length>0)await this.selectStory(0);this.saveToCache()}catch(A){nE(this.emptyStateState),FA("[ERROR]","Error loading posts:",A)}}async selectStory(A){if(A<0||A>=this.posts.length)return;if(this.renderer.isDestroyed)return;if(this.tldrLoading)this.stopTldrLoadingAnimation();if(this.chatMode&&this.selectedPost&&this.chatPanelState){if(this.savedChatSessions.set(this.selectedPost.id,{messages:[...this.chatPanelState.messages],suggestions:[...this.chatPanelState.suggestions.suggestions],originalSuggestions:[...this.chatPanelState.suggestions.originalSuggestions],followUpCount:this.followUpCount}),this.cancelSuggestionLoadingInterval(),this.chatPanelState.input)this.chatPanelState.input.blur();if(this.chatPanelState)this.chatPanelState.isActive=!1;this.chatPanelState=null}let q=this.selectedIndex;this.selectedIndex=A,this.rootCommentIndex=0,WJ(this.storyListState,this.posts,q,A);let g=this.posts[A];if(!g)return;for(let E of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(E.id);try{let E=await nO(g.id);if(this.renderer.isDestroyed)return;if(E)if(this.selectedPost=E,(this.storyViewModes.get(g.id)||"comments")==="chat"&&this.chatServiceState)this.chatMode=!0,this.showChatViewForCurrentStory();else{this.chatMode=!1,this.storyDetailState.panel.add(this.storyDetailState.header),this.storyDetailState.panel.add(this.storyDetailState.scroll),this.storyDetailState.panel.add(this.storyDetailState.shortcutsBar);let K=this.tldrLoading&&this.tldrLoadingStoryId===E.id,Z=this.tldrCache.get(E.id)||null,j=this.tldrErrorIds.has(E.id);if(g6(this.ctx,this.storyDetailState,E,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:Z,isLoading:K,loadingFrame:this.tldrLoadingFrame,hasError:j}),K)this.startTldrLoadingAnimation()}}catch(E){FA("[ERROR]","Error loading post:",E)}if(this.renderer.isDestroyed)return;NJ(this.storyListState,A),this.saveToCache()}navigateStory(A){if(this.posts.length===0)return;if(this.selectedIndex===-1){if(A>0)this.selectStory(0);else this.selectStory(this.posts.length-1);return}let q=this.selectedIndex+A;if(q>=0&&q<this.posts.length)this.selectStory(q)}handleTldrRequest(){if(!this.selectedPost)return;if(!EJ()){this.settingsIntent="tldr",this.showSettings();return}if(this.tldrLoading)return;let A=this.selectedPost.id;this.tldrCache.delete(A),this.tldrErrorIds.delete(A);let q=Wg();if(!q)return;this.tldrLoading=!0,this.tldrLoadingStoryId=A,this.tldrLoadingFrame=0,this.rerenderCurrentStory(),this.startAiIndicator(this.selectedIndex),this.startTldrLoadingAnimation();let g=this.selectedIndex;c9(this.selectedPost,q,{onComplete:(E)=>{if(this.renderer.isDestroyed)return;if(this.tldrCache.set(A,E),this.tldrLoading=!1,this.tldrLoadingStoryId=null,this.stopTldrLoadingAnimation(),this.stopAiIndicator(g),this.selectedPost?.id===A)this.rerenderCurrentStory()},onError:(E)=>{if(FA("[ERROR]","TLDR generation failed:",E),this.tldrErrorIds.add(A),this.tldrLoading=!1,this.tldrLoadingStoryId=null,this.stopTldrLoadingAnimation(),this.stopAiIndicator(g),this.selectedPost?.id===A)this.rerenderCurrentStory()}})}startTldrLoadingAnimation(){this.stopTldrLoadingAnimation(),this.tldrLoadingInterval=setInterval(()=>{if(this.renderer.isDestroyed||!this.tldrLoading){this.stopTldrLoadingAnimation();return}if(this.selectedPost?.id===this.tldrLoadingStoryId)this.tldrLoadingFrame=(this.tldrLoadingFrame+1)%10,this.rerenderCurrentStory()},80)}stopTldrLoadingAnimation(){if(this.tldrLoadingInterval)clearInterval(this.tldrLoadingInterval),this.tldrLoadingInterval=null}startAiIndicator(A){if(this.aiActiveIndices.add(A),!this.aiIndicatorInterval)this.aiIndicatorInterval=setInterval(()=>{if(this.renderer.isDestroyed||this.aiActiveIndices.size===0){this.stopAiIndicatorAnimation();return}this.aiIndicatorFrame=(this.aiIndicatorFrame+1)%yA.length;let q=yA[this.aiIndicatorFrame];for(let g of this.aiActiveIndices)rU(this.storyListState,g,q)},80)}stopAiIndicator(A){this.aiActiveIndices.delete(A);let q=A===this.selectedIndex;if(rU(this.storyListState,A,q?"\u203A":"\u2022"),this.aiActiveIndices.size===0)this.stopAiIndicatorAnimation()}stopAiIndicatorAnimation(){if(this.aiIndicatorInterval)clearInterval(this.aiIndicatorInterval),this.aiIndicatorInterval=null}rerenderCurrentStory(){if(!this.selectedPost||this.chatMode)return;let A=this.selectedPost.id,q=this.tldrCache.get(A)||null,g=this.tldrLoading&&this.tldrLoadingStoryId===A,E=this.tldrErrorIds.has(A);g6(this.ctx,this.storyDetailState,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:q,isLoading:g,loadingFrame:this.tldrLoadingFrame,hasError:E})}showChatViewForCurrentStory(){if(!this.selectedPost||!this.chatServiceState)return;this.chatPanelState=PZ(this.ctx,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl(),onSubmit:()=>this.sendChatMessage()});for(let q of this.chatPanelState.panel.getChildren())this.storyDetailState.panel.add(q);let A=this.savedChatSessions.get(this.selectedPost.id);if(A)this.followUpCount=A.followUpCount,this.chatPanelState.messages=[...A.messages],Tg(this.ctx,this.chatPanelState,this.chatServiceState.provider);else this.followUpCount=0,rE(this.ctx,this.chatPanelState,"assistant",`Ask me anything about "${this.selectedPost.title}" or the discussion about it on Hacker News...`,this.chatServiceState.provider);this.restoreSuggestionsFromSession(A)}navigateToNextComment(){if(!this.selectedPost)return;if(this.storyDetailState.rootCommentBoxes.length===0)return;let A=this.storyDetailState.rootCommentBoxes.length-1;if(this.rootCommentIndex<A)this.rootCommentIndex++,eU(this.storyDetailState,this.rootCommentIndex)}navigateToPreviousComment(){if(!this.selectedPost)return;if(this.storyDetailState.rootCommentBoxes.length===0)return;if(this.rootCommentIndex>0)this.rootCommentIndex--,eU(this.storyDetailState,this.rootCommentIndex)}openStoryUrl(){if(!this.selectedPost)return;let A=this.selectedPost.url||`https://news.ycombinator.com/item?id=${this.selectedPost.id}`;this.callbacks.onOpenUrl?.(A)}openChat(){if(!this.selectedPost)return;let A=Wg();if(A)this.chatServiceState=OY(A),this.showChatView();else this.settingsIntent="chat",this.showSettings()}showChatView(){if(!this.selectedPost||!this.chatServiceState)return;this.chatMode=!0,this.storyViewModes.set(this.selectedPost.id,"chat"),this.storyDetailState.panel.remove(this.storyDetailState.header.id),this.storyDetailState.panel.remove(this.storyDetailState.scroll.id),this.storyDetailState.panel.remove(this.storyDetailState.shortcutsBar.id),this.chatPanelState=PZ(this.ctx,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl(),onSubmit:()=>this.sendChatMessage()});for(let q of this.chatPanelState.panel.getChildren())this.storyDetailState.panel.add(q);let A=this.savedChatSessions.get(this.selectedPost.id);if(A)this.followUpCount=A.followUpCount,this.chatPanelState.messages=[...A.messages],Tg(this.ctx,this.chatPanelState,this.chatServiceState.provider);else this.followUpCount=0,rE(this.ctx,this.chatPanelState,"assistant",`Ask me anything about "${this.selectedPost.title}" or the discussion about it on Hacker News...`,this.chatServiceState.provider);this.restoreSuggestionsFromSession(A),this.saveToCache()}hideChatView(){if(!this.chatMode)return;if(this.chatMode=!1,this.selectedPost)this.storyViewModes.set(this.selectedPost.id,"comments");if(this.cancelSuggestionLoadingInterval(),this.selectedPost&&this.chatPanelState)this.savedChatSessions.set(this.selectedPost.id,{messages:[...this.chatPanelState.messages],suggestions:[...this.chatPanelState.suggestions.suggestions],originalSuggestions:[...this.chatPanelState.suggestions.originalSuggestions],followUpCount:this.followUpCount});if(this.chatPanelState?.input)this.chatPanelState.input.blur();for(let A of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(A.id);if(this.storyDetailState.panel.add(this.storyDetailState.header),this.storyDetailState.panel.add(this.storyDetailState.scroll),this.storyDetailState.panel.add(this.storyDetailState.shortcutsBar),this.selectedPost){let A=this.tldrCache.get(this.selectedPost.id)||null,q=this.tldrErrorIds.has(this.selectedPost.id);g6(this.ctx,this.storyDetailState,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:A,isLoading:!1,hasError:q})}if(this.chatPanelState)this.chatPanelState.isActive=!1;this.chatPanelState=null,this.saveToCache()}async sendChatMessage(){if(!this.chatPanelState||!this.chatServiceState||this.chatServiceState.isStreaming)return;let A=this.chatPanelState.input.plainText.trim();if(!A)return;this.chatPanelState.input.clear(),this.chatPanelState.suggestions.suggestions=[],this.chatPanelState.suggestions.originalSuggestions=[],this.chatPanelState.suggestions.selectedIndex=-1,aA(this.ctx,this.chatPanelState.suggestions),rE(this.ctx,this.chatPanelState,"user",A,this.chatServiceState.provider);let q=this.chatPanelState.messages.length;if(rE(this.ctx,this.chatPanelState,"assistant","...",this.chatServiceState.provider),!this.selectedPost)return;wJ(this.ctx,this.chatPanelState,this.chatServiceState.provider);let g=this.selectedIndex;this.startAiIndicator(g);let E=!1;await y9(this.chatServiceState,this.chatPanelState.messages,A,this.selectedPost,{onText:(F)=>{if(!E&&this.chatPanelState)E=!0,d6(this.chatPanelState);if(this.chatPanelState?.messages[q])this.chatPanelState.messages[q].content=F,Tg(this.ctx,this.chatPanelState,this.chatServiceState.provider)},onComplete:()=>{if(this.chatPanelState)d6(this.chatPanelState);this.stopAiIndicator(g),this.saveToCache(),this.generateFollowUpQuestionsIfNeeded()},onError:(F)=>{if(this.chatPanelState)d6(this.chatPanelState);this.stopAiIndicator(g);let K=this.chatServiceState?.provider==="anthropic"?"Anthropic":"OpenAI";if(this.chatPanelState?.messages[q])this.chatPanelState.messages[q].content=`Error: ${F.message}
|
|
233
|
+
|
|
234
|
+
Check your ${K} API key in ~/.config/hn-cli/config.json`,Tg(this.ctx,this.chatPanelState,this.chatServiceState.provider)}})}selectSuggestion(){if(!this.chatPanelState)return;let A=this.chatPanelState.suggestions;if(A.selectedIndex<0||A.selectedIndex>=A.suggestions.length)return;let q=A.suggestions[A.selectedIndex];if(!q)return;if(this.chatPanelState.input)this.chatPanelState.input.clear(),this.chatPanelState.input.insertText(q);A.suggestions=[],A.selectedIndex=-1,aA(this.ctx,A),this.sendChatMessage()}cancelSuggestionLoadingInterval(){if(this.suggestionLoadingInterval)clearInterval(this.suggestionLoadingInterval),this.suggestionLoadingInterval=null}restoreSuggestionsFromSession(A){if(!this.chatPanelState)return;if(A&&A.suggestions.length>0)this.chatPanelState.suggestions.suggestions=[...A.suggestions],this.chatPanelState.suggestions.originalSuggestions=[...A.originalSuggestions],this.chatPanelState.suggestions.selectedIndex=A.suggestions.length-1,this.chatPanelState.suggestions.loading=!1,aA(this.ctx,this.chatPanelState.suggestions);else if(A&&A.messages.length>0)this.chatPanelState.suggestions.loading=!0,aA(this.ctx,this.chatPanelState.suggestions),this.generateFollowUpQuestionsIfNeeded();else this.chatPanelState.suggestions.loading=!0,aA(this.ctx,this.chatPanelState.suggestions),this.generateInitialSuggestions()}async generateInitialSuggestions(){if(!this.selectedPost||!this.chatPanelState||!this.chatServiceState)return;let A=this.selectedPost.id,q=this.chatPanelState.suggestions;this.pendingGenerationStoryIds.add(A),this.cancelSuggestionLoadingInterval(),this.suggestionLoadingInterval=setInterval(()=>{if(!this.renderer.isDestroyed&&this.chatPanelState?.isActive&&this.selectedPost?.id===A&&this.chatPanelState.suggestions.loading)this.chatPanelState.suggestions.loadingFrame=(this.chatPanelState.suggestions.loadingFrame+1)%yA.length,aA(this.ctx,this.chatPanelState.suggestions)},80);try{let g=await b9(this.chatServiceState,this.selectedPost);if(this.cancelSuggestionLoadingInterval(),this.pendingGenerationStoryIds.delete(A),this.selectedPost?.id===A&&this.chatPanelState?.isActive){if(this.chatPanelState.suggestions.loading=!1,g.length>0)this.chatPanelState.suggestions.suggestions=g,this.chatPanelState.suggestions.originalSuggestions=[...g],this.chatPanelState.suggestions.selectedIndex=g.length-1;aA(this.ctx,this.chatPanelState.suggestions)}}catch(g){if(this.cancelSuggestionLoadingInterval(),this.pendingGenerationStoryIds.delete(A),this.selectedPost?.id===A&&this.chatPanelState?.isActive)this.chatPanelState.suggestions.loading=!1,aA(this.ctx,this.chatPanelState.suggestions);FA("[ERROR]","[suggestions] Error:",g)}}async generateFollowUpQuestionsIfNeeded(){if(this.followUpCount>=m1)return;if(!this.chatPanelState||!this.chatServiceState||!this.selectedPost)return;let A=this.selectedPost.id;if(this.pendingGenerationStoryIds.has(A))return;if(!this.chatPanelState.messages.some((g)=>g.role==="assistant"))return;this.pendingGenerationStoryIds.add(A),this.chatPanelState.suggestions.loading=!0,aA(this.ctx,this.chatPanelState.suggestions),this.cancelSuggestionLoadingInterval(),this.suggestionLoadingInterval=setInterval(()=>{if(!this.renderer.isDestroyed&&this.chatPanelState?.isActive&&this.selectedPost?.id===A&&this.chatPanelState.suggestions.loading)this.chatPanelState.suggestions.loadingFrame=(this.chatPanelState.suggestions.loadingFrame+1)%yA.length,aA(this.ctx,this.chatPanelState.suggestions)},80);try{let g=await v9(this.chatServiceState,this.selectedPost,this.chatPanelState.messages);if(this.cancelSuggestionLoadingInterval(),this.pendingGenerationStoryIds.delete(A),this.selectedPost?.id===A&&this.chatPanelState?.isActive){if(this.chatPanelState.suggestions.loading=!1,g.length>0)this.chatPanelState.suggestions.suggestions=g,this.chatPanelState.suggestions.originalSuggestions=[...g],this.chatPanelState.suggestions.selectedIndex=g.length-1,this.followUpCount++;aA(this.ctx,this.chatPanelState.suggestions),AG(this.chatPanelState)}}catch(g){if(this.cancelSuggestionLoadingInterval(),this.pendingGenerationStoryIds.delete(A),this.selectedPost?.id===A&&this.chatPanelState?.isActive)this.chatPanelState.suggestions.loading=!1,aA(this.ctx,this.chatPanelState.suggestions);FA("[ERROR]","[follow-up] Error:",g)}finally{this.saveToCache()}}showAuthSetup(){this.authSetupMode=!0,this.authSetupState=RZ(),this.storyDetailState.panel.remove(this.storyDetailState.header.id),this.storyDetailState.panel.remove(this.storyDetailState.scroll.id),this.storyDetailState.panel.remove(this.storyDetailState.shortcutsBar.id),this.showAuthSetupUI()}showAuthSetupUI(){if(!this.authSetupState)return;for(let q of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(q.id);let A=CJ(this.ctx,this.authSetupState,{onSaveKey:(q,g)=>this.saveApiKey(q,g)});this.storyDetailState.panel.add(A)}hideAuthSetup(){if(this.authSetupMode=!1,this.authSetupState?.keyInput)this.authSetupState.keyInput.blur();for(let A of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(A.id);if(this.authSetupFromSettings){this.authSetupFromSettings=!1,this.authSetupState=null,this.showSettings();return}if(this.storyDetailState.panel.add(this.storyDetailState.header),this.storyDetailState.panel.add(this.storyDetailState.scroll),this.storyDetailState.panel.add(this.storyDetailState.shortcutsBar),this.selectedPost){let A=this.tldrCache.get(this.selectedPost.id)||null,q=this.tldrErrorIds.has(this.selectedPost.id);g6(this.ctx,this.storyDetailState,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:A,isLoading:!1,hasError:q})}this.authSetupState=null}saveApiKey(A,q){let g=q6();if(g.provider=A,A==="anthropic")g.anthropicApiKey=q;else g.openaiApiKey=q;if(tE(g),this.authSetupFromSettings=!1,this.hideAuthSetup(),this.chatServiceState=OY(A),this.settingsIntent==="chat")this.showChatView();else if(this.settingsIntent==="tldr")this.handleTldrRequest();else this.showSettings();this.settingsIntent="settings"}showSettings(){if(this.settingsMode=!0,this.settingsFromChatMode=this.chatMode,this.settingsState=DJ(),this.cancelSuggestionLoadingInterval(),this.chatPanelState?.input)this.chatPanelState.input.blur();if(this.selectedPost&&this.chatPanelState)this.savedChatSessions.set(this.selectedPost.id,{messages:[...this.chatPanelState.messages],suggestions:[...this.chatPanelState.suggestions.suggestions],originalSuggestions:[...this.chatPanelState.suggestions.originalSuggestions],followUpCount:this.followUpCount});for(let A of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(A.id);this.rerenderSettings(),this.saveToCache()}rerenderSettings(){if(!this.settingsState)return;for(let q of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(q.id);let A=yJ(this.ctx,this.settingsState,Wg()||"anthropic");this.storyDetailState.panel.add(A)}hideSettings(){this.settingsMode=!1;for(let A of this.storyDetailState.panel.getChildren())this.storyDetailState.panel.remove(A.id);if(this.settingsFromChatMode&&this.selectedPost&&this.chatServiceState){this.chatPanelState=PZ(this.ctx,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl(),onSubmit:()=>this.sendChatMessage()});for(let q of this.chatPanelState.panel.getChildren())this.storyDetailState.panel.add(q);let A=this.savedChatSessions.get(this.selectedPost.id);if(A)this.followUpCount=A.followUpCount,this.chatPanelState.messages=[...A.messages];Tg(this.ctx,this.chatPanelState,this.chatServiceState.provider),this.restoreSuggestionsFromSession(A)}else if(this.storyDetailState.panel.add(this.storyDetailState.header),this.storyDetailState.panel.add(this.storyDetailState.scroll),this.storyDetailState.panel.add(this.storyDetailState.shortcutsBar),this.selectedPost){let A=this.tldrCache.get(this.selectedPost.id)||null,q=this.tldrErrorIds.has(this.selectedPost.id);g6(this.ctx,this.storyDetailState,this.selectedPost,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:A,isLoading:!1,hasError:q})}this.settingsState=null,this.saveToCache()}async refresh(){l9(),await this.loadPosts()}async copySelectionToClipboard(){let A=this.renderer.getSelection();if(!A)return;let q=A.getSelectedText();if(!q)return;let g=process.platform,E;if(g==="darwin")E=["pbcopy"];else if(g==="linux")E=["xclip","-selection","clipboard"];else if(g==="win32")E=["clip"];else return;try{let F=Bun.spawn(E,{stdin:"pipe"});F.stdin.write(q),F.stdin.end(),await F.exited}catch{}}get currentSelectedIndex(){return this.selectedIndex}get currentRootCommentIndex(){return this.rootCommentIndex}get currentPosts(){return this.posts}get currentSelectedPost(){return this.selectedPost}get rootCommentCount(){return this.storyDetailState.rootCommentBoxes.length}ensureLayoutReadyForTesting(){if(!this.contentArea.getChildren().some((F)=>F.id===this.storyListState.panel.id))this.contentArea.remove(this.emptyStateState.container.id),this.contentArea.add(this.storyListState.panel),this.contentArea.add(this.storyDetailState.panel);if(!this.storyDetailState.panel.getChildren().some((F)=>F.id===this.storyDetailState.header.id))IZ(this.storyDetailState)}setPostsForTesting(A){this.ensureLayoutReadyForTesting(),this.posts=A,TZ(this.ctx,this.storyListState,this.posts,this.selectedIndex,{onSelect:(q)=>this.selectStory(q)})}async setSelectedPostForTesting(A){if(this.ensureLayoutReadyForTesting(),this.selectedIndex===-1)this.selectedIndex=0;this.selectedPost=A;let q=this.tldrCache.get(A.id)||null,g=this.tldrErrorIds.has(A.id);g6(this.ctx,this.storyDetailState,A,{onOpenStoryUrl:()=>this.openStoryUrl()},{tldr:q,isLoading:!1,hasError:g})}cleanup(){if(this.chatPanelState)d6(this.chatPanelState);this.stopTldrLoadingAnimation(),this.stopAiIndicatorAnimation()}}var c1={bg:"#1a1a1a"};async function d1(){let A=await RU({exitOnCtrlC:!0,backgroundColor:c1.bg,enableMouseMovement:!0,useKittyKeyboard:{disambiguate:!0,alternateKeys:!0}}),q=new LY(A,{onOpenUrl:(g)=>{f1(`open "${g}"`)},onExit:()=>{A.destroy(),process.exit(0)}});await q.initialize(),q.startHeaderLoading(),YJ().then((g)=>{if(q.stopHeaderLoading(),g?.hasUpdate)q.setUpdateInfo(g)}),A.start()}d1().catch(console.error);
|