@tangle-network/braid 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/README.md +10 -0
  2. package/THIRD_PARTY_LICENSES.json +16 -0
  3. package/THIRD_PARTY_NOTICES.md +4 -1
  4. package/dist/adapters/analysis/managed-analysis-runtime.d.ts +19 -0
  5. package/dist/adapters/analysis/managed-analysis-runtime.d.ts.map +1 -0
  6. package/dist/adapters/analysis/managed-analysis-runtime.js +72 -0
  7. package/dist/adapters/analysis/managed-analysis-runtime.js.map +1 -0
  8. package/dist/adapters/analysis/production-analysis-analyst.d.ts +1 -1
  9. package/dist/adapters/analysis/production-analysis-analyst.d.ts.map +1 -1
  10. package/dist/adapters/analysis/production-analysis-analyst.js +12 -2
  11. package/dist/adapters/analysis/production-analysis-analyst.js.map +1 -1
  12. package/dist/adapters/analysis/python-runner.d.ts +3 -1
  13. package/dist/adapters/analysis/python-runner.d.ts.map +1 -1
  14. package/dist/adapters/analysis/python-runner.js +99 -1
  15. package/dist/adapters/analysis/python-runner.js.map +1 -1
  16. package/dist/adapters/analysis/trace-analysis-adapter.d.ts +2 -0
  17. package/dist/adapters/analysis/trace-analysis-adapter.d.ts.map +1 -1
  18. package/dist/adapters/analysis/trace-analysis-adapter.js +6 -0
  19. package/dist/adapters/analysis/trace-analysis-adapter.js.map +1 -1
  20. package/dist/adapters/credentials/headless-key.js +3 -2
  21. package/dist/adapters/credentials/headless-key.js.map +1 -1
  22. package/dist/adapters/persistence/posix-at.d.ts +8 -0
  23. package/dist/adapters/persistence/posix-at.d.ts.map +1 -0
  24. package/dist/adapters/persistence/posix-at.js +96 -0
  25. package/dist/adapters/persistence/posix-at.js.map +1 -0
  26. package/dist/adapters/persistence/safe-file-descriptor.d.ts +1 -1
  27. package/dist/adapters/persistence/safe-file-descriptor.d.ts.map +1 -1
  28. package/dist/adapters/persistence/safe-file-descriptor.js +29 -18
  29. package/dist/adapters/persistence/safe-file-descriptor.js.map +1 -1
  30. package/dist/adapters/persistence/safe-file-io.d.ts.map +1 -1
  31. package/dist/adapters/persistence/safe-file-io.js +9 -9
  32. package/dist/adapters/persistence/safe-file-io.js.map +1 -1
  33. package/dist/adapters/persistence/safe-file.d.ts +1 -1
  34. package/dist/adapters/persistence/safe-file.d.ts.map +1 -1
  35. package/dist/adapters/persistence/safe-file.js +4 -4
  36. package/dist/adapters/persistence/safe-file.js.map +1 -1
  37. package/dist/adapters/storage/sqlite-bound-open.d.ts +4 -4
  38. package/dist/adapters/storage/sqlite-bound-open.d.ts.map +1 -1
  39. package/dist/adapters/storage/sqlite-bound-open.js +49 -19
  40. package/dist/adapters/storage/sqlite-bound-open.js.map +1 -1
  41. package/dist/app/analysis-comparison-request.d.ts +1 -1
  42. package/dist/app/analysis-comparison-request.d.ts.map +1 -1
  43. package/dist/app/analysis-comparison-request.js +9 -5
  44. package/dist/app/analysis-comparison-request.js.map +1 -1
  45. package/dist/app/analysis-comparison.js +2 -2
  46. package/dist/app/analysis-comparison.js.map +1 -1
  47. package/dist/app/analysis-promotion.d.ts.map +1 -1
  48. package/dist/app/analysis-promotion.js +4 -5
  49. package/dist/app/analysis-promotion.js.map +1 -1
  50. package/dist/app/analysis-request.d.ts +1 -1
  51. package/dist/app/analysis-request.d.ts.map +1 -1
  52. package/dist/app/analysis-request.js +3 -7
  53. package/dist/app/analysis-request.js.map +1 -1
  54. package/dist/app/analysis-service.js +1 -1
  55. package/dist/app/analysis-service.js.map +1 -1
  56. package/dist/app/analysis-source.d.ts +4 -1
  57. package/dist/app/analysis-source.d.ts.map +1 -1
  58. package/dist/app/analysis-source.js +18 -0
  59. package/dist/app/analysis-source.js.map +1 -1
  60. package/dist/app/analysis-types.d.ts +1 -0
  61. package/dist/app/analysis-types.d.ts.map +1 -1
  62. package/dist/app/analysis-types.js.map +1 -1
  63. package/dist/app/application-support.d.ts +4 -0
  64. package/dist/app/application-support.d.ts.map +1 -1
  65. package/dist/app/application-support.js.map +1 -1
  66. package/dist/app/application.d.ts.map +1 -1
  67. package/dist/app/application.js +28 -7
  68. package/dist/app/application.js.map +1 -1
  69. package/dist/app/journal.d.ts +4 -0
  70. package/dist/app/journal.d.ts.map +1 -1
  71. package/dist/app/journal.js +6 -0
  72. package/dist/app/journal.js.map +1 -1
  73. package/dist/app/storage-journal.d.ts +4 -1
  74. package/dist/app/storage-journal.d.ts.map +1 -1
  75. package/dist/app/storage-journal.js +5 -0
  76. package/dist/app/storage-journal.js.map +1 -1
  77. package/dist/bin/plain.js +1 -1
  78. package/dist/bin/plain.js.map +1 -1
  79. package/dist/domain/ids-core.d.ts +1 -1
  80. package/dist/domain/ids-core.d.ts.map +1 -1
  81. package/dist/domain/ids-core.js +5 -2
  82. package/dist/domain/ids-core.js.map +1 -1
  83. package/dist/ports/effect-storage.d.ts +5 -0
  84. package/dist/ports/effect-storage.d.ts.map +1 -1
  85. package/dist/startup/durable-runtime.js +2 -344
  86. package/dist/startup/durable-runtime.js.map +1 -6
  87. package/dist/startup/preview-runtime.js +170 -6
  88. package/dist/startup/preview-runtime.js.map +1 -6
  89. package/dist/startup/terminal-runtime.js +5 -13
  90. package/dist/startup/terminal-runtime.js.map +1 -6
  91. package/dist/version.d.ts +1 -1
  92. package/dist/version.d.ts.map +1 -1
  93. package/dist/version.js +21 -1
  94. package/dist/version.js.map +1 -1
  95. package/dist/views/shared/semantic-details.d.ts.map +1 -1
  96. package/dist/views/shared/semantic-details.js +5 -0
  97. package/dist/views/shared/semantic-details.js.map +1 -1
  98. package/package.json +8 -3
  99. package/dist/startup/chunks/analysis-comparison-facts-BYZX2KTR.js +0 -2
  100. package/dist/startup/chunks/analysis-comparison-facts-BYZX2KTR.js.map +0 -6
  101. package/dist/startup/chunks/analysis-comparison-record-VMUVZPUV.js +0 -2
  102. package/dist/startup/chunks/analysis-comparison-record-VMUVZPUV.js.map +0 -6
  103. package/dist/startup/chunks/chunk-2B6P3EZQ.js +0 -2
  104. package/dist/startup/chunks/chunk-2B6P3EZQ.js.map +0 -6
  105. package/dist/startup/chunks/chunk-3SLVNOQZ.js +0 -2
  106. package/dist/startup/chunks/chunk-3SLVNOQZ.js.map +0 -6
  107. package/dist/startup/chunks/chunk-5ZIGORCF.js +0 -6
  108. package/dist/startup/chunks/chunk-5ZIGORCF.js.map +0 -6
  109. package/dist/startup/chunks/chunk-6G7QKB6J.js +0 -2
  110. package/dist/startup/chunks/chunk-6G7QKB6J.js.map +0 -6
  111. package/dist/startup/chunks/chunk-AUAERYTD.js +0 -2
  112. package/dist/startup/chunks/chunk-AUAERYTD.js.map +0 -6
  113. package/dist/startup/chunks/chunk-BCT2WD5R.js +0 -2
  114. package/dist/startup/chunks/chunk-BCT2WD5R.js.map +0 -6
  115. package/dist/startup/chunks/chunk-ECYRVU25.js +0 -2
  116. package/dist/startup/chunks/chunk-ECYRVU25.js.map +0 -6
  117. package/dist/startup/chunks/chunk-EQDIVTWX.js +0 -2
  118. package/dist/startup/chunks/chunk-EQDIVTWX.js.map +0 -6
  119. package/dist/startup/chunks/chunk-FRHYXPNB.js +0 -2
  120. package/dist/startup/chunks/chunk-FRHYXPNB.js.map +0 -6
  121. package/dist/startup/chunks/chunk-GZKMBTCI.js +0 -3
  122. package/dist/startup/chunks/chunk-GZKMBTCI.js.map +0 -6
  123. package/dist/startup/chunks/chunk-GZLREBOD.js +0 -2
  124. package/dist/startup/chunks/chunk-GZLREBOD.js.map +0 -6
  125. package/dist/startup/chunks/chunk-HFZ5Q3X5.js +0 -2
  126. package/dist/startup/chunks/chunk-HFZ5Q3X5.js.map +0 -6
  127. package/dist/startup/chunks/chunk-ICFZ5GZR.js +0 -2
  128. package/dist/startup/chunks/chunk-ICFZ5GZR.js.map +0 -6
  129. package/dist/startup/chunks/chunk-JR4A5QXZ.js +0 -2
  130. package/dist/startup/chunks/chunk-JR4A5QXZ.js.map +0 -6
  131. package/dist/startup/chunks/chunk-LUXHNCKY.js +0 -2
  132. package/dist/startup/chunks/chunk-LUXHNCKY.js.map +0 -6
  133. package/dist/startup/chunks/chunk-NDSFD5HI.js +0 -2
  134. package/dist/startup/chunks/chunk-NDSFD5HI.js.map +0 -6
  135. package/dist/startup/chunks/chunk-NWDQFVYZ.js +0 -6
  136. package/dist/startup/chunks/chunk-NWDQFVYZ.js.map +0 -6
  137. package/dist/startup/chunks/chunk-PAPTIOCL.js +0 -2
  138. package/dist/startup/chunks/chunk-PAPTIOCL.js.map +0 -6
  139. package/dist/startup/chunks/chunk-PIJUYQ3B.js +0 -2
  140. package/dist/startup/chunks/chunk-PIJUYQ3B.js.map +0 -6
  141. package/dist/startup/chunks/chunk-PXRVFPRL.js +0 -2
  142. package/dist/startup/chunks/chunk-PXRVFPRL.js.map +0 -6
  143. package/dist/startup/chunks/chunk-RELMHYIG.js +0 -3
  144. package/dist/startup/chunks/chunk-RELMHYIG.js.map +0 -6
  145. package/dist/startup/chunks/chunk-RJAXEI5Z.js +0 -2
  146. package/dist/startup/chunks/chunk-RJAXEI5Z.js.map +0 -6
  147. package/dist/startup/chunks/chunk-RPJ2AWHI.js +0 -2
  148. package/dist/startup/chunks/chunk-RPJ2AWHI.js.map +0 -6
  149. package/dist/startup/chunks/chunk-TW2LBTSL.js +0 -2
  150. package/dist/startup/chunks/chunk-TW2LBTSL.js.map +0 -6
  151. package/dist/startup/chunks/chunk-TYNDYSMP.js +0 -2
  152. package/dist/startup/chunks/chunk-TYNDYSMP.js.map +0 -6
  153. package/dist/startup/chunks/chunk-TZNTMUGF.js +0 -117
  154. package/dist/startup/chunks/chunk-TZNTMUGF.js.map +0 -6
  155. package/dist/startup/chunks/chunk-UT4NB43O.js +0 -2
  156. package/dist/startup/chunks/chunk-UT4NB43O.js.map +0 -6
  157. package/dist/startup/chunks/chunk-VTNLVERY.js +0 -2
  158. package/dist/startup/chunks/chunk-VTNLVERY.js.map +0 -6
  159. package/dist/startup/chunks/configuration-wizard-G5VQFNBR.js +0 -3
  160. package/dist/startup/chunks/configuration-wizard-G5VQFNBR.js.map +0 -6
  161. package/dist/startup/chunks/production-connection-providers-3BNIYUIS.js +0 -2
  162. package/dist/startup/chunks/production-connection-providers-3BNIYUIS.js.map +0 -6
  163. package/dist/startup/chunks/production-connections-27KWJIR6.js +0 -2
  164. package/dist/startup/chunks/production-connections-27KWJIR6.js.map +0 -6
  165. package/dist/startup/chunks/profile-connection-dispatch-HFTWSEIR.js +0 -2
  166. package/dist/startup/chunks/profile-connection-dispatch-HFTWSEIR.js.map +0 -6
  167. package/dist/startup/chunks/supervisor-control-VPVKE7NI.js +0 -2
  168. package/dist/startup/chunks/supervisor-control-VPVKE7NI.js.map +0 -6
  169. package/dist/startup/chunks/supervisor-watch-X6TXO6GN.js +0 -2
  170. package/dist/startup/chunks/supervisor-watch-X6TXO6GN.js.map +0 -6
  171. package/dist/startup/chunks/trace-store-ZIU4S2VR.js +0 -6
  172. package/dist/startup/chunks/trace-store-ZIU4S2VR.js.map +0 -6
  173. package/dist/startup/chunks/ui-dispatch-NV3XTZDR.js +0 -3
  174. package/dist/startup/chunks/ui-dispatch-NV3XTZDR.js.map +0 -6
@@ -1,117 +0,0 @@
1
- import*as ct from"node:fs";import{createRequire as Xr}from"node:module";import*as le from"node:path";import{fileURLToPath as Qr}from"node:url";var ne=!1;function Fe(i){ne=i}var Vt=new Set(["`","-","=","[","]","\\",";","'",",",".","/","!","@","#","$","%","^","&","*","(",")","_","+","|","~","{","}",":","<",">","?"]),L={shift:1,alt:2,ctrl:4,super:8},De=192,E={escape:27,tab:9,enter:13,space:32,backspace:127,kpEnter:57414},K={up:-1,down:-2,right:-3,left:-4},_={delete:-10,insert:-11,pageUp:-12,pageDown:-13,home:-14,end:-15},Ir=new Map([[57399,48],[57400,49],[57401,50],[57402,51],[57403,52],[57404,53],[57405,54],[57406,55],[57407,56],[57408,57],[57409,46],[57410,47],[57411,42],[57412,45],[57413,43],[57415,61],[57416,44],[57417,K.left],[57418,K.right],[57419,K.up],[57420,K.down],[57421,_.pageUp],[57422,_.pageDown],[57423,_.home],[57424,_.end],[57425,_.insert],[57426,_.delete]]);function qt(i){return Ir.get(i)??i}function nt(i,e){return(e&~De&L.shift)!==0&&i>=65&&i<=90?i+32:i}var G={up:["\x1B[A","\x1BOA"],down:["\x1B[B","\x1BOB"],right:["\x1B[C","\x1BOC"],left:["\x1B[D","\x1BOD"],home:["\x1B[H","\x1BOH","\x1B[1~","\x1B[7~"],end:["\x1B[F","\x1BOF","\x1B[4~","\x1B[8~"],insert:["\x1B[2~"],delete:["\x1B[3~"],pageUp:["\x1B[5~","\x1B[[5~"],pageDown:["\x1B[6~","\x1B[[6~"],clear:["\x1B[E","\x1BOE"],f1:["\x1BOP","\x1B[11~","\x1B[[A"],f2:["\x1BOQ","\x1B[12~","\x1B[[B"],f3:["\x1BOR","\x1B[13~","\x1B[[C"],f4:["\x1BOS","\x1B[14~","\x1B[[D"],f5:["\x1B[15~","\x1B[[E"],f6:["\x1B[17~"],f7:["\x1B[18~"],f8:["\x1B[19~"],f9:["\x1B[20~"],f10:["\x1B[21~"],f11:["\x1B[23~"],f12:["\x1B[24~"]},Ar={up:["\x1B[a"],down:["\x1B[b"],right:["\x1B[c"],left:["\x1B[d"],clear:["\x1B[e"],insert:["\x1B[2$"],delete:["\x1B[3$"],pageUp:["\x1B[5$"],pageDown:["\x1B[6$"],home:["\x1B[7$"],end:["\x1B[8$"]},Mr={up:["\x1BOa"],down:["\x1BOb"],right:["\x1BOc"],left:["\x1BOd"],clear:["\x1BOe"],insert:["\x1B[2^"],delete:["\x1B[3^"],pageUp:["\x1B[5^"],pageDown:["\x1B[6^"],home:["\x1B[7^"],end:["\x1B[8^"]};var q=(i,e)=>e.includes(i),H=(i,e,t)=>t===L.shift?q(i,Ar[e]):t===L.ctrl?q(i,Mr[e]):!1,st="press";function Ne(i){return i.includes("\x1B[200~")?!1:!!(i.includes(":3u")||i.includes(":3~")||i.includes(":3A")||i.includes(":3B")||i.includes(":3C")||i.includes(":3D")||i.includes(":3H")||i.includes(":3F"))}function it(i){if(!i)return"press";let e=parseInt(i,10);return e===2?"repeat":e===3?"release":"press"}function Pr(i){let e=i.match(/^\x1b\[(\d+)(?::(\d*))?(?::(\d+))?(?:;(\d+))?(?::(\d+))?u$/);if(e){let n=parseInt(e[1],10),o=e[2]&&e[2].length>0?parseInt(e[2],10):void 0,l=e[3]?parseInt(e[3],10):void 0,a=e[4]?parseInt(e[4],10):1,c=it(e[5]);return st=c,{codepoint:n,shiftedKey:o,baseLayoutKey:l,modifier:a-1,eventType:c}}let t=i.match(/^\x1b\[1;(\d+)(?::(\d+))?([ABCD])$/);if(t){let n=parseInt(t[1],10),o=it(t[2]),l={A:-1,B:-2,C:-3,D:-4};return st=o,{codepoint:l[t[3]],modifier:n-1,eventType:o}}let s=i.match(/^\x1b\[(\d+)(?:;(\d+))?(?::(\d+))?~$/);if(s){let n=parseInt(s[1],10),o=s[2]?parseInt(s[2],10):1,l=it(s[3]),c={2:_.insert,3:_.delete,5:_.pageUp,6:_.pageDown,7:_.home,8:_.end}[n];if(c!==void 0)return st=l,{codepoint:c,modifier:o-1,eventType:l}}let r=i.match(/^\x1b\[1;(\d+)(?::(\d+))?([HF])$/);if(r){let n=parseInt(r[1],10),o=it(r[2]),l=r[3]==="H"?_.home:_.end;return st=o,{codepoint:l,modifier:n-1,eventType:o}}return null}function I(i,e,t){let s=Pr(i);if(!s)return!1;let r=s.modifier&~De,n=t&~De;if(r!==n)return!1;let o=nt(qt(s.codepoint),s.modifier),l=nt(qt(e),t);if(o===l)return!0;if(s.baseLayoutKey!==void 0&&s.baseLayoutKey===e){let a=o,c=a>=97&&a<=122,h=Vt.has(String.fromCharCode(a));if(!c&&!h)return!0}return!1}function Ht(i){let e=i.match(/^\x1b\[27;(\d+);(\d+)~$/);if(!e)return null;let t=parseInt(e[1],10);return{codepoint:parseInt(e[2],10),modifier:t-1}}function j(i,e,t){let s=Ht(i);return s?s.codepoint===e&&s.modifier===t:!1}function $r(){return!!process.env.WT_SESSION&&!process.env.SSH_CONNECTION&&!process.env.SSH_CLIENT&&!process.env.SSH_TTY}function qs(i,e){return i==="\x7F"?e===0:i!=="\b"?!1:$r()?e===L.ctrl:e===0}function Er(i){let e=i.toLowerCase(),t=e.charCodeAt(0);return t>=97&&t<=122||e==="["||e==="\\"||e==="]"||e==="_"?String.fromCharCode(t&31):e==="-"?"":null}function Hs(i){return i>="0"&&i<="9"}function rt(i,e,t){if(t===0)return!1;let s=Ht(i);return!s||s.modifier!==t?!1:nt(s.codepoint,s.modifier)===nt(e,t)}function Or(i){let e=i.toLowerCase().split("+"),t=e[e.length-1];return t?{key:t,ctrl:e.includes("ctrl"),shift:e.includes("shift"),alt:e.includes("alt"),super:e.includes("super")}:null}function te(i,e){let t=Or(e);if(!t)return!1;let{key:s,ctrl:r,shift:n,alt:o,super:l}=t,a=0;switch(n&&(a|=L.shift),o&&(a|=L.alt),r&&(a|=L.ctrl),l&&(a|=L.super),s){case"escape":case"esc":return a!==0?!1:i==="\x1B"||I(i,E.escape,0)||j(i,E.escape,0);case"space":return!ne&&(a===L.ctrl&&i==="\0"||a===L.alt&&i==="\x1B ")?!0:a===0?i===" "||I(i,E.space,0)||j(i,E.space,0):I(i,E.space,a)||j(i,E.space,a);case"tab":return a===L.shift?i==="\x1B[Z"||I(i,E.tab,L.shift)||j(i,E.tab,L.shift):a===0?i===" "||I(i,E.tab,0):I(i,E.tab,a)||j(i,E.tab,a);case"enter":case"return":return a===L.shift?I(i,E.enter,L.shift)||I(i,E.kpEnter,L.shift)||j(i,E.enter,L.shift)?!0:ne?i==="\x1B\r"||i===`
2
- `:!1:a===L.alt?I(i,E.enter,L.alt)||I(i,E.kpEnter,L.alt)||j(i,E.enter,L.alt)?!0:ne?!1:i==="\x1B\r":a===0?i==="\r"||!ne&&i===`
3
- `||i==="\x1BOM"||I(i,E.enter,0)||I(i,E.kpEnter,0):I(i,E.enter,a)||I(i,E.kpEnter,a)||j(i,E.enter,a);case"backspace":return a===L.alt?i==="\x1B\x7F"||i==="\x1B\b"?!0:I(i,E.backspace,L.alt)||j(i,E.backspace,L.alt):a===L.ctrl?qs(i,L.ctrl)?!0:I(i,E.backspace,L.ctrl)||j(i,E.backspace,L.ctrl):a===0?qs(i,0)||I(i,E.backspace,0)||j(i,E.backspace,0):I(i,E.backspace,a)||j(i,E.backspace,a);case"insert":return a===0?q(i,G.insert)||I(i,_.insert,0):H(i,"insert",a)?!0:I(i,_.insert,a);case"delete":return a===0?q(i,G.delete)||I(i,_.delete,0):H(i,"delete",a)?!0:I(i,_.delete,a);case"clear":return a===0?q(i,G.clear):H(i,"clear",a);case"home":return a===0?q(i,G.home)||I(i,_.home,0):H(i,"home",a)?!0:I(i,_.home,a);case"end":return a===0?q(i,G.end)||I(i,_.end,0):H(i,"end",a)?!0:I(i,_.end,a);case"pageup":return a===0?q(i,G.pageUp)||I(i,_.pageUp,0):H(i,"pageUp",a)?!0:I(i,_.pageUp,a);case"pagedown":return a===0?q(i,G.pageDown)||I(i,_.pageDown,0):H(i,"pageDown",a)?!0:I(i,_.pageDown,a);case"up":return a===L.alt?i==="\x1Bp"||I(i,K.up,L.alt):a===0?q(i,G.up)||I(i,K.up,0):H(i,"up",a)?!0:I(i,K.up,a);case"down":return a===L.alt?i==="\x1Bn"||I(i,K.down,L.alt):a===0?q(i,G.down)||I(i,K.down,0):H(i,"down",a)?!0:I(i,K.down,a);case"left":return a===L.alt?i==="\x1B[1;3D"||!ne&&i==="\x1BB"||i==="\x1Bb"||I(i,K.left,L.alt):a===L.ctrl?i==="\x1B[1;5D"||H(i,"left",L.ctrl)||I(i,K.left,L.ctrl):a===0?q(i,G.left)||I(i,K.left,0):H(i,"left",a)?!0:I(i,K.left,a);case"right":return a===L.alt?i==="\x1B[1;3C"||!ne&&i==="\x1BF"||i==="\x1Bf"||I(i,K.right,L.alt):a===L.ctrl?i==="\x1B[1;5C"||H(i,"right",L.ctrl)||I(i,K.right,L.ctrl):a===0?q(i,G.right)||I(i,K.right,0):H(i,"right",a)?!0:I(i,K.right,a);case"f1":case"f2":case"f3":case"f4":case"f5":case"f6":case"f7":case"f8":case"f9":case"f10":case"f11":case"f12":return a!==0?!1:q(i,G[s])}if(s.length===1&&(s>="a"&&s<="z"||Hs(s)||Vt.has(s))){let c=s.charCodeAt(0),h=Er(s),u=s>="a"&&s<="z",f=Hs(s);return a===L.ctrl+L.alt&&!ne&&h&&i===`\x1B${h}`||a===L.alt&&!ne&&(u||f||Vt.has(s))&&i===`\x1B${s}`?!0:a===L.ctrl?h&&i===h?!0:I(i,c,L.ctrl)||rt(i,c,L.ctrl):a===L.shift+L.ctrl?I(i,c,L.shift+L.ctrl)||rt(i,c,L.shift+L.ctrl):a===L.shift?u&&i===s.toUpperCase()?!0:I(i,c,L.shift)||rt(i,c,L.shift):a!==0?I(i,c,a)||rt(i,c,a):i===s||I(i,c,0)}return!1}var Br=/^\x1b\[(\d+)(?::(\d*))?(?::(\d+))?(?:;(\d+))?(?::(\d+))?u$/,_r=L.shift|De;function ot(i){let e=i.match(Br);if(!e)return;let t=Number.parseInt(e[1]??"",10);if(!Number.isFinite(t))return;let s=e[2]&&e[2].length>0?Number.parseInt(e[2],10):void 0,r=e[4]?Number.parseInt(e[4],10):1,n=Number.isFinite(r)?r-1:0;if((n&~_r)!==0||n&(L.alt|L.ctrl))return;let o=t;if(n&L.shift&&typeof s=="number"&&(o=s),o=qt(o),!(!Number.isFinite(o)||o<32))try{return String.fromCodePoint(o)}catch{return}}function Wr(i){let e=Ht(i);if(!(!e||(e.modifier&~De&~L.shift)!==0)&&!(!Number.isFinite(e.codepoint)||e.codepoint<32))try{return String.fromCodePoint(e.codepoint)}catch{return}}function Ut(i){return ot(i)??Wr(i)}import{createRequire as Dr}from"node:module";import*as oe from"node:path";import{fileURLToPath as Fr}from"node:url";var Nr=Dr(import.meta.url),lt;function Kr(i){return typeof i!="object"||i===null?!1:typeof i.isModifierPressed=="function"}function Vr(){if(lt!==void 0)return lt??void 0;lt=null;let i=process.arch;if(i!=="x64"&&i!=="arm64")return;let e;if(process.platform==="darwin")e=oe.join("native","darwin","prebuilds",`darwin-${i}`,"darwin-modifiers.node");else if(process.platform==="win32")e=oe.join("native","win32","prebuilds",`win32-${i}`,"win32-console-mode.node");else return;let t=oe.dirname(Fr(import.meta.url)),s=[oe.join(t,"..",e),oe.join(t,e),oe.join(oe.dirname(process.execPath),e)];for(let r of s)try{let n=Nr(r);if(Kr(n))return lt=n,n}catch{}}function Us(i){let e=Vr();if(!e)return!1;try{return e.isModifierPressed(i)===!0}catch{return!1}}import{EventEmitter as qr}from"events";var se="\x1B",zs="\x1B[200~",at="\x1B[201~";function Hr(i){if(!i.startsWith(se))return"not-escape";if(i.length===1)return"incomplete";let e=i.slice(1);return e.startsWith("[")?e.startsWith("[M")?i.length>=6?"complete":"incomplete":Ur(i):e.startsWith("]")?zr(i):e.startsWith("P")?Gr(i):e.startsWith("_")?jr(i):e.startsWith("O")?e.length>=2?"complete":"incomplete":(e.length===1,"complete")}function Ur(i){if(!i.startsWith(`${se}[`))return"complete";if(i.length<3)return"incomplete";let e=i.slice(2),t=e[e.length-1],s=t.charCodeAt(0);if(s>=64&&s<=126){if(e.startsWith("<")){if(/^<\d+;\d+;\d+[Mm]$/.test(e))return"complete";if(t==="M"||t==="m"){let n=e.slice(1,-1).split(";");if(n.length===3&&n.every(o=>/^\d+$/.test(o)))return"complete"}return"incomplete"}return"complete"}return"incomplete"}function zr(i){return!i.startsWith(`${se}]`)||i.endsWith(`${se}\\`)||i.endsWith("\x07")?"complete":"incomplete"}function Gr(i){return!i.startsWith(`${se}P`)||i.endsWith(`${se}\\`)?"complete":"incomplete"}function jr(i){return!i.startsWith(`${se}_`)||i.endsWith(`${se}\\`)?"complete":"incomplete"}function Yr(i){let e=i.match(/^\x1b\[(\d+)(?::\d*)?(?::\d+)?u$/);if(!e)return;let t=parseInt(e[1],10);return t>=32?t:void 0}function Gs(i){let e=[],t=0;for(;t<i.length;){let s=i.slice(t);if(s.startsWith(se)){let r=1;for(;r<=s.length;){let n=s.slice(0,r),o=Hr(n);if(o==="complete"){if(n==="\x1B\x1B"){let l=s[r];if(l==="["||l==="]"||l==="O"||l==="P"||l==="_"){e.push(se),t+=1;break}}e.push(n),t+=r;break}else if(o==="incomplete")r++;else{e.push(n),t+=r;break}}if(r>s.length)return{sequences:e,remainder:s}}else e.push(s[0]),t++}return{sequences:e,remainder:""}}var Ke=class extends qr{buffer="";timeout=null;timeoutMs;pasteMode=!1;pasteBuffer="";pendingKittyPrintableCodepoint;constructor(e={}){super(),this.timeoutMs=e.timeout??10}process(e){this.timeout&&(clearTimeout(this.timeout),this.timeout=null);let t;if(Buffer.isBuffer(e))if(e.length===1&&e[0]>127){let n=e[0]-128;t=`\x1B${String.fromCharCode(n)}`}else t=e.toString();else t=e;if(t.length===0&&this.buffer.length===0){this.emitDataSequence("");return}if(this.buffer+=t,this.pasteMode){this.pasteBuffer+=this.buffer,this.buffer="";let n=this.pasteBuffer.indexOf(at);if(n!==-1){let o=this.pasteBuffer.slice(0,n),l=this.pasteBuffer.slice(n+at.length);this.pasteMode=!1,this.pasteBuffer="",this.pendingKittyPrintableCodepoint=void 0,this.emit("paste",o),l.length>0&&this.process(l)}return}let s=this.buffer.indexOf(zs);if(s!==-1){if(s>0){let o=this.buffer.slice(0,s),l=Gs(o);for(let a of l.sequences)this.emitDataSequence(a)}this.pendingKittyPrintableCodepoint=void 0,this.buffer=this.buffer.slice(s+zs.length),this.pasteMode=!0,this.pasteBuffer=this.buffer,this.buffer="";let n=this.pasteBuffer.indexOf(at);if(n!==-1){let o=this.pasteBuffer.slice(0,n),l=this.pasteBuffer.slice(n+at.length);this.pasteMode=!1,this.pasteBuffer="",this.pendingKittyPrintableCodepoint=void 0,this.emit("paste",o),l.length>0&&this.process(l)}return}let r=Gs(this.buffer);this.buffer=r.remainder;for(let n of r.sequences)this.emitDataSequence(n);this.buffer.length>0&&(this.timeout=setTimeout(()=>{let n=this.flush();for(let o of n)this.emitDataSequence(o)},this.timeoutMs))}emitDataSequence(e){let t=e.length===1?e.codePointAt(0):void 0;if(t!==void 0&&t===this.pendingKittyPrintableCodepoint){this.pendingKittyPrintableCodepoint=void 0;return}this.pendingKittyPrintableCodepoint=Yr(e),this.emit("data",e)}flush(){if(this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.buffer.length===0)return[];let e=[this.buffer];return this.buffer="",this.pendingKittyPrintableCodepoint=void 0,e}clear(){this.timeout&&(clearTimeout(this.timeout),this.timeout=null),this.buffer="",this.pasteMode=!1,this.pasteBuffer="",this.pendingKittyPrintableCodepoint=void 0}getBuffer(){return this.buffer}destroy(){this.clear()}};var Zr=Xr(import.meta.url),Jr=1e3,js="\x1B]9;4;3\x07",Ys="\x1B]9;4;0\x07",en="\x1B[13;2u",tn=7,sn=150,rn=`\x1B[>${tn}u\x1B[?u\x1B[c`;function Xs(i){let e=i.match(/^\x1b\[\?(\d+)u$/);if(e)return{type:"kitty-flags",flags:Number.parseInt(e[1],10)};if(/^\x1b\[\?[\d;]*c$/.test(i))return{type:"device-attributes"}}function Qs(i){return i==="\x1B["||/^\x1b\[\?[\d;]*$/.test(i)}function nn(){return process.platform==="darwin"&&process.env.TERM_PROGRAM==="Apple_Terminal"}function on(i,e,t){return e&&i==="\r"&&t?en:i}var zt=class{wasRaw=!1;inputHandler;resizeHandler;_kittyProtocolActive=!1;_modifyOtherKeysActive=!1;keyboardProtocolPushed=!1;keyboardProtocolNegotiationBuffer="";keyboardProtocolBufferFlushTimer;stdinBuffer;stdinDataHandler;progressInterval;writeLogPath=(()=>{let e=process.env.PI_TUI_WRITE_LOG||"";if(!e)return"";try{if(ct.statSync(e).isDirectory()){let t=new Date,s=`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}_${String(t.getHours()).padStart(2,"0")}-${String(t.getMinutes()).padStart(2,"0")}-${String(t.getSeconds()).padStart(2,"0")}`;return le.join(e,`tui-${s}-${process.pid}.log`)}}catch{}return e})();get kittyProtocolActive(){return this._kittyProtocolActive}get modifyOtherKeysActive(){return this._modifyOtherKeysActive}start(e,t){this.inputHandler=e,this.resizeHandler=t,this.wasRaw=process.stdin.isRaw||!1,process.stdin.setRawMode&&process.stdin.setRawMode(!0),process.stdin.setEncoding("utf8"),process.stdin.resume(),process.stdout.write("\x1B[?2004h"),process.stdout.on("resize",this.resizeHandler),process.platform!=="win32"&&process.kill(process.pid,"SIGWINCH"),this.enableWindowsVTInput(),this.queryAndEnableKittyProtocol()}setupStdinBuffer(){this.stdinBuffer=new Ke({timeout:10}),this.stdinBuffer.on("data",e=>{let t=this.readKeyboardProtocolNegotiationSequence(e);if(t==="pending"){this.scheduleKeyboardProtocolNegotiationBufferFlush();return}this.handleKeyboardProtocolNegotiationSequence(t)||this.forwardInputSequence(e)}),this.stdinBuffer.on("paste",e=>{this.inputHandler&&this.inputHandler(`\x1B[200~${e}\x1B[201~`)}),this.stdinDataHandler=e=>{this.stdinBuffer.process(e)}}queryAndEnableKittyProtocol(){this.setupStdinBuffer(),process.stdin.on("data",this.stdinDataHandler),this.keyboardProtocolPushed=!0,this.clearKeyboardProtocolNegotiationBuffer(),process.stdout.write(rn)}handleKeyboardProtocolNegotiationSequence(e){return e?(this.clearKeyboardProtocolNegotiationBuffer(),e.type==="kitty-flags"?(e.flags!==0?(this.disableModifyOtherKeys(),this._kittyProtocolActive||(this._kittyProtocolActive=!0,Fe(!0))):this.enableModifyOtherKeys(),!0):(this._kittyProtocolActive||this.enableModifyOtherKeys(),!0)):!1}readKeyboardProtocolNegotiationSequence(e){if(this.keyboardProtocolNegotiationBuffer){let s=this.keyboardProtocolNegotiationBuffer+e,r=Xs(s);if(r)return this.clearKeyboardProtocolNegotiationBuffer(),r;if(Qs(s))return this.setKeyboardProtocolNegotiationBuffer(s),"pending";this.flushKeyboardProtocolNegotiationBufferAsInput()}let t=Xs(e);if(t)return t;if(Qs(e))return this.setKeyboardProtocolNegotiationBuffer(e),"pending"}setKeyboardProtocolNegotiationBuffer(e){this.clearKeyboardProtocolNegotiationBufferFlushTimer(),this.keyboardProtocolNegotiationBuffer=e}clearKeyboardProtocolNegotiationBuffer(){this.clearKeyboardProtocolNegotiationBufferFlushTimer(),this.keyboardProtocolNegotiationBuffer=""}flushKeyboardProtocolNegotiationBufferAsInput(){if(!this.keyboardProtocolNegotiationBuffer)return;let e=this.keyboardProtocolNegotiationBuffer;this.clearKeyboardProtocolNegotiationBuffer(),this.forwardInputSequence(e)}scheduleKeyboardProtocolNegotiationBufferFlush(){!this.keyboardProtocolNegotiationBuffer||this.keyboardProtocolBufferFlushTimer||(this.keyboardProtocolBufferFlushTimer=setTimeout(()=>{this.keyboardProtocolBufferFlushTimer=void 0,this.flushKeyboardProtocolNegotiationBufferAsInput()},sn))}clearKeyboardProtocolNegotiationBufferFlushTimer(){this.keyboardProtocolBufferFlushTimer&&(clearTimeout(this.keyboardProtocolBufferFlushTimer),this.keyboardProtocolBufferFlushTimer=void 0)}forwardInputSequence(e){if(!this.inputHandler)return;let t=e==="\r"&&(nn()||process.platform==="win32"),s=on(e,t,t&&Us("shift"));this.inputHandler(s)}enableModifyOtherKeys(){this._kittyProtocolActive||this._modifyOtherKeysActive||(process.stdout.write("\x1B[>4;2m"),this._modifyOtherKeysActive=!0)}disableModifyOtherKeys(){this._modifyOtherKeysActive&&(process.stdout.write("\x1B[>4;0m"),this._modifyOtherKeysActive=!1)}enableWindowsVTInput(){if(process.platform==="win32")try{let e=process.arch;if(e!=="x64"&&e!=="arm64")return;let t=le.dirname(Qr(import.meta.url)),s=le.join("native","win32","prebuilds",`win32-${e}`,"win32-console-mode.node"),r=[le.join(t,"..",s),le.join(t,s),le.join(le.dirname(process.execPath),s)];for(let n of r)try{Zr(n).enableVirtualTerminalInput?.();return}catch{}}catch{}}async drainInput(e=1e3,t=50){let s=this.keyboardProtocolPushed||this._kittyProtocolActive;this.clearKeyboardProtocolNegotiationBuffer(),s&&(process.stdout.write("\x1B[<u"),this.keyboardProtocolPushed=!1,this._kittyProtocolActive=!1,Fe(!1)),this.disableModifyOtherKeys();let r=this.inputHandler;this.inputHandler=void 0;let n=Date.now(),o=()=>{n=Date.now()};process.stdin.on("data",o);let l=Date.now()+e;try{for(;;){let a=Date.now(),c=l-a;if(c<=0||a-n>=t)break;await new Promise(h=>setTimeout(h,Math.min(t,c)))}}finally{process.stdin.removeListener("data",o),this.inputHandler=r}}stop(){this.clearProgressInterval()&&process.stdout.write(Ys),process.stdout.write("\x1B[?2004l");let e=this.keyboardProtocolPushed||this._kittyProtocolActive;this.clearKeyboardProtocolNegotiationBuffer(),e&&(process.stdout.write("\x1B[<u"),this.keyboardProtocolPushed=!1,this._kittyProtocolActive=!1,Fe(!1)),this.disableModifyOtherKeys(),this.stdinBuffer&&(this.stdinBuffer.destroy(),this.stdinBuffer=void 0),this.stdinDataHandler&&(process.stdin.removeListener("data",this.stdinDataHandler),this.stdinDataHandler=void 0),this.inputHandler=void 0,this.resizeHandler&&(process.stdout.removeListener("resize",this.resizeHandler),this.resizeHandler=void 0),process.stdin.pause(),process.stdin.setRawMode&&process.stdin.setRawMode(this.wasRaw)}write(e){if(process.stdout.write(e),this.writeLogPath)try{ct.appendFileSync(this.writeLogPath,e,{encoding:"utf8"})}catch{}}get columns(){return process.stdout.columns||Number(process.env.COLUMNS)||80}get rows(){return process.stdout.rows||Number(process.env.LINES)||24}moveBy(e){e>0?process.stdout.write(`\x1B[${e}B`):e<0&&process.stdout.write(`\x1B[${-e}A`)}hideCursor(){process.stdout.write("\x1B[?25l")}showCursor(){process.stdout.write("\x1B[?25h")}clearLine(){process.stdout.write("\x1B[K")}clearFromCursor(){process.stdout.write("\x1B[J")}clearScreen(){process.stdout.write("\x1B[2J\x1B[H")}setTitle(e){process.stdout.write(`\x1B]0;${e}\x07`)}setProgress(e){e?(process.stdout.write(js),this.progressInterval||(this.progressInterval=setInterval(()=>{process.stdout.write(js)},Jr))):(this.clearProgressInterval(),process.stdout.write(Ys))}clearProgressInterval(){return this.progressInterval?(clearInterval(this.progressInterval),this.progressInterval=void 0,!0):!1}};import*as ki from"node:os";import*as Ci from"node:path";import{performance as xt}from"node:perf_hooks";function ln(i){let e=i.startsWith("#")?i.slice(1):i,t=parseInt(e.slice(0,2),16),s=parseInt(e.slice(2,4),16),r=parseInt(e.slice(4,6),16);return{r:t,g:s,b:r}}function Le(i){if(!/^[0-9a-f]+$/i.test(i))return;let e=16**i.length-1;if(!(e<=0))return Math.round(parseInt(i,16)/e*255)}var Zs=/^\x1b\]11;([^\x07\x1b]*)(?:\x07|\x1b\\)$/i,an=/^(?:\x1b\[\?997;(1|2)n)+$/;function Js(i){return Zs.test(i)}function Gt(i){let e=i.match(Zs);if(!e)return;let t=e[1].trim();if(t.startsWith("#")){let h=t.slice(1);if(/^[0-9a-f]{6}$/i.test(h))return ln(t);if(/^[0-9a-f]{12}$/i.test(h)){let u=Le(h.slice(0,4)),f=Le(h.slice(4,8)),d=Le(h.slice(8,12));return u!==void 0&&f!==void 0&&d!==void 0?{r:u,g:f,b:d}:void 0}return}let s=t.replace(/^rgba?:/i,""),[r,n,o]=s.split("/");if(r===void 0||n===void 0||o===void 0)return;let l=Le(r),a=Le(n),c=Le(o);return l!==void 0&&a!==void 0&&c!==void 0?{r:l,g:a,b:c}:void 0}function jt(i){let e=i.match(an);if(e)return e[1]==="2"?"light":"dark"}import{execSync as cn}from"node:child_process";var ht=null,hn={widthPx:9,heightPx:18};function Yt(i){hn=i}function un(){try{return cn("tmux display-message -p '#{client_termfeatures}'",{encoding:"utf8",timeout:250,stdio:["ignore","pipe","ignore"]}).split(",").map(e=>e.trim()).includes("hyperlinks")}catch{return!1}}function ti(i=un){let e=process.env.TERM_PROGRAM?.toLowerCase()||"",t=process.env.TERMINAL_EMULATOR?.toLowerCase()||"",s=process.env.TERM?.toLowerCase()||"",r=process.env.COLORTERM?.toLowerCase()||"",n=r==="truecolor"||r==="24bit",o=process.platform==="win32";return process.env.TMUX||s.startsWith("tmux")?{images:null,trueColor:n,hyperlinks:i()}:s.startsWith("screen")?{images:null,trueColor:n,hyperlinks:!1}:process.env.KITTY_WINDOW_ID||e==="kitty"?{images:"kitty",trueColor:!0,hyperlinks:!0}:e==="ghostty"||s.includes("ghostty")||process.env.GHOSTTY_RESOURCES_DIR?{images:"kitty",trueColor:!0,hyperlinks:!0}:process.env.WEZTERM_PANE||e==="wezterm"?{images:"kitty",trueColor:!0,hyperlinks:!0}:e==="warpterminal"||process.env.WARP_SESSION_ID||process.env.WARP_TERMINAL_SESSION_UUID?{images:"kitty",trueColor:!0,hyperlinks:!0}:process.env.ITERM_SESSION_ID||e==="iterm.app"?{images:"iterm2",trueColor:!0,hyperlinks:!0}:process.env.WT_SESSION?{images:null,trueColor:!0,hyperlinks:!0}:e==="vscode"?{images:null,trueColor:!0,hyperlinks:!0}:e==="alacritty"?{images:null,trueColor:!0,hyperlinks:!0}:t==="jetbrains-jediterm"?{images:null,trueColor:!0,hyperlinks:!1}:o?{images:null,trueColor:!0,hyperlinks:!1}:{images:null,trueColor:n,hyperlinks:!1}}function de(){return ht||(ht=ti()),ht}function ut(i){ht=i}var Te="\x1B_G",ei="\x1B]1337;File=";function F(i){return i.startsWith(Te)||i.startsWith(ei)?!0:i.includes(Te)||i.includes(ei)}function Ve(i){return`\x1B_Ga=d,d=I,i=${i},q=2\x1B\\`}function Xt(){return"\x1B_Ga=d,d=A,q=2\x1B\\"}function Qt(){return"\x1B_Ga=d,d=a,q=2\x1B\\"}var fn=new Map;function si(i){let e=/\x1b_G([^;]*);/.exec(i)?.[1];if(!e)return;let t=/(?:^|,)i=(\d+)(?:,|$)/.exec(e)?.[1];return t===void 0?void 0:fn.get(Number.parseInt(t,10))}function ft(i){let e=si(i);if(e)return{imageId:e.imageId,columns:e.columns,rows:e.rows,widthPx:e.widthPx,heightPx:e.heightPx}}var dn=new Set(["i","p","x","y","w","h","X","Y","c","r","C","U","z","P","Q","H","V"]);function ii(i){let e=/\x1b_G([^;]*);/.exec(i),t=si(i);if(!e||!t)return;let s=e.index,r=e[1],n;for(;;){let a=i.indexOf("\x1B\\",s+Te.length);if(a===-1)return;if(n=a+2,!/(?:^|,)m=1(?:,|$)/.test(r))break;if(s=n,!i.startsWith(Te,s))return;let c=i.indexOf(";",s+Te.length);if(c===-1)return;r=i.slice(s+Te.length,c)}let l=`\x1B_Ga=p,q=2,${e[1].split(",").filter(a=>dn.has(a.split("=",1)[0]??"")).join(",")}\x1B\\`;return{imageId:t.imageId,transmissionGeneration:t.transmissionGeneration,transmissionBytes:n-e.index,estimatedDecodedBytes:t.widthPx*t.heightPx*4,sequence:l,replacementLine:`${i.slice(0,e.index)}${l}${i.slice(n)}`}}function Zt(i,e,t){let s=ft(i),r=/\x1b_G([^;]*);/.exec(i);if(!s||!r||e<0||e>=s.rows||t<=0)return i;let n=Math.min(t,s.rows-e);if(e===0&&n===s.rows)return i;let o=Math.floor(s.heightPx*e/s.rows),l=Math.ceil(s.heightPx*(e+n)/s.rows),a=Math.max(1,Math.min(s.heightPx,l)-o),c=r[1].split(",").filter(h=>!/^[yhr]=/.test(h));return c.push(`y=${o}`,`h=${a}`,`r=${n}`),`${i.slice(0,r.index)}\x1B_G${c.join(",")};${i.slice(r.index+r[0].length)}`}function Jt(i,e){return`\x1B]8;;${e}\x1B\\${i}\x1B]8;;\x1B\\`}var ri=[161,161,164,164,167,168,170,170,173,174,176,180,182,186,188,191,198,198,208,208,215,216,222,225,230,230,232,234,236,237,240,240,242,243,247,250,252,252,254,254,257,257,273,273,275,275,283,283,294,295,299,299,305,307,312,312,319,322,324,324,328,331,333,333,338,339,358,359,363,363,462,462,464,464,466,466,468,468,470,470,472,472,474,474,476,476,593,593,609,609,708,708,711,711,713,715,717,717,720,720,728,731,733,733,735,735,768,879,913,929,931,937,945,961,963,969,1025,1025,1040,1103,1105,1105,8208,8208,8211,8214,8216,8217,8220,8221,8224,8226,8228,8231,8240,8240,8242,8243,8245,8245,8251,8251,8254,8254,8308,8308,8319,8319,8321,8324,8364,8364,8451,8451,8453,8453,8457,8457,8467,8467,8470,8470,8481,8482,8486,8486,8491,8491,8531,8532,8539,8542,8544,8555,8560,8569,8585,8585,8592,8601,8632,8633,8658,8658,8660,8660,8679,8679,8704,8704,8706,8707,8711,8712,8715,8715,8719,8719,8721,8721,8725,8725,8730,8730,8733,8736,8739,8739,8741,8741,8743,8748,8750,8750,8756,8759,8764,8765,8776,8776,8780,8780,8786,8786,8800,8801,8804,8807,8810,8811,8814,8815,8834,8835,8838,8839,8853,8853,8857,8857,8869,8869,8895,8895,8978,8978,9312,9449,9451,9547,9552,9587,9600,9615,9618,9621,9632,9633,9635,9641,9650,9651,9654,9655,9660,9661,9664,9665,9670,9672,9675,9675,9678,9681,9698,9701,9711,9711,9733,9734,9737,9737,9742,9743,9756,9756,9758,9758,9792,9792,9794,9794,9824,9825,9827,9829,9831,9834,9836,9837,9839,9839,9886,9887,9919,9919,9926,9933,9935,9939,9941,9953,9955,9955,9960,9961,9963,9969,9972,9972,9974,9977,9979,9980,9982,9983,10045,10045,10102,10111,11094,11097,12872,12879,57344,63743,65024,65039,65533,65533,127232,127242,127248,127277,127280,127337,127344,127373,127375,127376,127387,127404,917760,917999,983040,1048573,1048576,1114109],ni=12288,oi=65510,li=[12288,12288,65281,65376,65504,65510];var ai=4352,ci=262141,es=[4352,4447,8986,8987,9001,9002,9193,9196,9200,9200,9203,9203,9725,9726,9748,9749,9776,9783,9800,9811,9855,9855,9866,9871,9875,9875,9889,9889,9898,9899,9917,9918,9924,9925,9934,9934,9940,9940,9962,9962,9970,9971,9973,9973,9978,9978,9981,9981,9989,9989,9994,9995,10024,10024,10060,10060,10062,10062,10067,10069,10071,10071,10133,10135,10160,10160,10175,10175,11035,11036,11088,11088,11093,11093,11904,11929,11931,12019,12032,12245,12272,12287,12289,12350,12353,12438,12441,12543,12549,12591,12593,12686,12688,12773,12783,12830,12832,12871,12880,42124,42128,42182,43360,43388,44032,55203,63744,64255,65040,65049,65072,65106,65108,65126,65128,65131,94176,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,119552,119638,119648,119670,126980,126980,127183,127183,127374,127374,127377,127386,127488,127490,127504,127547,127552,127560,127568,127569,127584,127589,127744,127776,127789,127797,127799,127868,127870,127891,127904,127946,127951,127955,127968,127984,127988,127988,127992,128062,128064,128064,128066,128252,128255,128317,128331,128334,128336,128359,128378,128378,128405,128406,128420,128420,128507,128591,128640,128709,128716,128716,128720,128722,128725,128728,128732,128735,128747,128748,128756,128764,128992,129003,129008,129008,129292,129338,129340,129349,129351,129535,129648,129660,129664,129674,129678,129734,129736,129736,129741,129756,129759,129770,129775,129784,131072,196605,196608,262141];var dt=(i,e)=>{let t=0,s=Math.floor(i.length/2)-1;for(;t<=s;){let r=Math.floor((t+s)/2),n=r*2;if(e<i[n])s=r-1;else if(e>i[n+1])t=r+1;else return!0}return!1};var hi=19968,[gn,xn]=bn(es);function bn(i){let e=i[0],t=i[1];for(let s=0;s<i.length;s+=2){let r=i[s],n=i[s+1];if(hi>=r&&hi<=n)return[r,n];n-r>t-e&&(e=r,t=n)}return[e,t]}var ui=i=>i<161||i>1114109?!1:dt(ri,i),fi=i=>i<ni||i>oi?!1:dt(li,i);var di=i=>i>=gn&&i<=xn?!0:i<ai||i>ci?!1:dt(es,i);function wn(i){if(!Number.isSafeInteger(i))throw new TypeError(`Expected a code point, got \`${typeof i}\`.`)}function ts(i,{ambiguousAsWide:e=!1}={}){return wn(i),fi(i)||di(i)||e&&ui(i)?2:1}var Y=new Intl.Segmenter(void 0,{granularity:"grapheme"}),yn=new Intl.Segmenter(void 0,{granularity:"word"});function pt(){return Y}function Re(){return yn}function kn(i){let e=i.codePointAt(0);return e>=126976&&e<=130047||e>=8960&&e<=9215||e>=9728&&e<=10175||e>=11088&&e<=11093||i.includes("\uFE0F")||i.length>2}var Cn=new RegExp("^(?:\\p{Default_Ignorable_Code_Point}|\\p{Control}|\\p{Mark}|\\p{Surrogate})+$","v"),Sn=new RegExp("^[\\p{Default_Ignorable_Code_Point}\\p{Control}\\p{Format}\\p{Mark}\\p{Surrogate}]+","v"),vn=new RegExp("^(?:\\p{Default_Ignorable_Code_Point}|\\p{Control}|\\p{Format}|\\p{Mark}|\\p{Surrogate})$","v"),Ln=new RegExp("^\\p{Mark}$","v"),pi=new RegExp("^(?:[\\p{Spacing_Mark}--[\\u1734\\u302E\\u302F]]|[\\u065F\\u0F7F\\u102B\\u102C\\u1031\\u1033-\\u1035\\u1038\\u103A-\\u103E])+$","v"),Tn=new RegExp("^\\p{RGI_Emoji}$","v"),Rn=512,qe=new Map,mt=/[\p{Script_Extensions=Han}\p{Script_Extensions=Hiragana}\p{Script_Extensions=Katakana}\p{Script_Extensions=Hangul}\p{Script_Extensions=Bopomofo}]/u;function rs(i){for(let e=0;e<i.length;e++){let t=i.charCodeAt(e);if(t<32||t>126)return!1}return!0}function In(i,e){if(e<=0||i.length===0)return{text:"",width:0};if(rs(i)){let a=i.slice(0,e);return{text:a,width:a.length}}let t=i.includes("\x1B"),s=i.includes(" ");if(!t&&!s){let a="",c=0;for(let{segment:h}of Y.segment(i)){let u=ae(h);if(c+u>e)break;a+=h,c+=u}return{text:a,width:c}}let r="",n=0,o=0,l="";for(;o<i.length;){let a=W(i,o);if(a){l+=a.code,o+=a.length;continue}if(i[o]===" "){if(n+3>e)break;l&&(r+=l,l=""),r+=" ",n+=3,o++;continue}let c=o;for(;c<i.length&&i[c]!==" "&&!W(i,c);)c++;for(let{segment:h}of Y.segment(i.slice(o,c))){let u=ae(h);if(n+u>e)return{text:r,width:n};l&&(r+=l,l=""),r+=h,n+=u}o=c}return{text:r,width:n}}function ss(i,e,t,s,r,n){let o="\x1B[0m",l=$n(i),a=e+s,c;return t.length>0?c=`${i}${l}${o}${t}${o}`:c=`${i}${l}${o}`,n?c+" ".repeat(Math.max(0,r-a)):c}function ae(i){if(i===" ")return 3;if(pi.test(i))return[...i].length;if(Cn.test(i))return 0;if(kn(i)&&Tn.test(i))return 2;let e=i.replace(Sn,""),t=e.codePointAt(0);if(t===void 0)return 0;if(t>=127462&&t<=127487)return 2;let s=ts(t),r=!1,n=[...e];for(let o of n.slice(1))if(pi.test(o))s+=1,r=!1;else if(Ln.test(o))r=!0;else if(!vn.test(o)){let l=o.codePointAt(0);r||l>=65280&&l<=65519?s+=ts(l):(l===3635||l===3763)&&(s+=1),r=!1}return s}function y(i){if(i.length===0)return 0;if(rs(i))return i.length;let e=qe.get(i);if(e!==void 0)return e;let t=i;if(i.includes(" ")&&(t=t.replace(/\t/g," ")),t.includes("\x1B")){let r="",n=0;for(;n<t.length;){let o=W(t,n);if(o){n+=o.length;continue}r+=t[n],n++}t=r}let s=0;for(let{segment:r}of Y.segment(t))s+=ae(r);if(qe.size>=Rn){let r=qe.keys().next().value;r!==void 0&&qe.delete(r)}return qe.set(i,s),s}function gt(i){if(!i.includes("\x1B"))return i;let e="",t=0;for(;t<i.length;){let s=W(i,t);if(s){t+=s.length;continue}e+=i[t],t++}return e}function Ue(i,e){let t=0,s=0;for(;s<i.length;){let r=W(i,s);if(r){s+=r.length;continue}let n=s;for(;n<i.length&&!W(i,n);)n++;for(let{segment:o}of Y.segment(i.slice(s,n))){let l=ae(o);if(l>0&&e>=t&&e<t+l)return{start:t,end:t+l};t+=l}s=n}}function ns(i,e){let t,s=0,r=0;for(;r<i.length;){let n=W(i,r);if(n){let l=/^\x1b\]8;[^;]*;([^\x07\x1b]*)(?:\x07|\x1b\\)$/.exec(n.code);l&&(t=l[1]||void 0),r+=n.length;continue}let o=r;for(;o<i.length&&!W(i,o);)o++;for(let{segment:l}of Y.segment(i.slice(r,o))){let a=l===" "?3:ae(l);if(e>=s&&e<s+a)return t;s+=a}r=o}}var An=/[\u0e33\u0eb3]/,Mn=/[\u0e33\u0eb3]/g;function mi(i){let e=i;if(An.test(e)&&(e=e.replace(Mn,r=>r==="\u0E33"?"\u0E4D\u0E32":"\u0ECD\u0EB2")),!e.includes(" "))return e;let t="",s=0;for(;s<e.length;){let r=W(e,s);if(r){t+=r.code,s+=r.length;continue}t+=e[s]===" "?" ":e[s],s++}return t}function W(i,e){if(e>=i.length||i[e]!=="\x1B")return null;let t=i[e+1];if(t==="["){let s=e+2;for(;s<i.length&&!/[mGKHJ]/.test(i[s]);)s++;return s<i.length?{code:i.substring(e,s+1),length:s+1-e}:null}if(t==="]"){let s=e+2;for(;s<i.length;){if(i[s]==="\x07")return{code:i.substring(e,s+1),length:s+1-e};if(i[s]==="\x1B"&&i[s+1]==="\\")return{code:i.substring(e,s+2),length:s+2-e};s++}return null}if(t==="_"){let s=e+2;for(;s<i.length;){if(i[s]==="\x07")return{code:i.substring(e,s+1),length:s+1-e};if(i[s]==="\x1B"&&i[s+1]==="\\")return{code:i.substring(e,s+2),length:s+2-e};s++}return null}return null}function gi(i){if(!i.startsWith("\x1B]8;"))return;let e=i.endsWith("\x07")?"\x07":"\x1B\\",t=i.slice(4,e==="\x07"?-1:-2),s=t.indexOf(";");if(s===-1)return;let r=t.slice(0,s),n=t.slice(s+1);return n?{params:r,url:n,terminator:e}:null}function Pn(i){return`\x1B]8;${i.params};${i.url}${i.terminator}`}function xi(i){return`\x1B]8;;${i}`}function $n(i){if(!i.includes("\x1B]8;"))return"";let e=null,t=0;for(;t<i.length;){let s=W(i,t);if(s){let r=gi(s.code);r!==void 0&&(e=r),t+=s.length}else t++}return e?xi(e.terminator):""}var He=class{bold=!1;dim=!1;italic=!1;underline=!1;blink=!1;inverse=!1;hidden=!1;strikethrough=!1;fgColor=null;bgColor=null;activeHyperlink=null;process(e){let t=gi(e);if(t!==void 0){this.activeHyperlink=t;return}if(!e.endsWith("m"))return;let s=e.match(/\x1b\[([\d;]*)m/);if(!s)return;let r=s[1];if(r===""||r==="0"){this.reset();return}let n=r.split(";"),o=0;for(;o<n.length;){let l=Number.parseInt(n[o],10);if(l===38||l===48){if(n[o+1]==="5"&&n[o+2]!==void 0){let a=`${n[o]};${n[o+1]};${n[o+2]}`;l===38?this.fgColor=a:this.bgColor=a,o+=3;continue}else if(n[o+1]==="2"&&n[o+4]!==void 0){let a=`${n[o]};${n[o+1]};${n[o+2]};${n[o+3]};${n[o+4]}`;l===38?this.fgColor=a:this.bgColor=a,o+=5;continue}}switch(l){case 0:this.reset();break;case 1:this.bold=!0;break;case 2:this.dim=!0;break;case 3:this.italic=!0;break;case 4:this.underline=!0;break;case 5:this.blink=!0;break;case 7:this.inverse=!0;break;case 8:this.hidden=!0;break;case 9:this.strikethrough=!0;break;case 21:this.bold=!1;break;case 22:this.bold=!1,this.dim=!1;break;case 23:this.italic=!1;break;case 24:this.underline=!1;break;case 25:this.blink=!1;break;case 27:this.inverse=!1;break;case 28:this.hidden=!1;break;case 29:this.strikethrough=!1;break;case 39:this.fgColor=null;break;case 49:this.bgColor=null;break;default:l>=30&&l<=37||l>=90&&l<=97?this.fgColor=String(l):(l>=40&&l<=47||l>=100&&l<=107)&&(this.bgColor=String(l));break}o++}}reset(){this.bold=!1,this.dim=!1,this.italic=!1,this.underline=!1,this.blink=!1,this.inverse=!1,this.hidden=!1,this.strikethrough=!1,this.fgColor=null,this.bgColor=null}clear(){this.reset(),this.activeHyperlink=null}getActiveCodes(){let e=[];this.bold&&e.push("1"),this.dim&&e.push("2"),this.italic&&e.push("3"),this.underline&&e.push("4"),this.blink&&e.push("5"),this.inverse&&e.push("7"),this.hidden&&e.push("8"),this.strikethrough&&e.push("9"),this.fgColor&&e.push(this.fgColor),this.bgColor&&e.push(this.bgColor);let t=e.length>0?`\x1B[${e.join(";")}m`:"";return this.activeHyperlink&&(t+=Pn(this.activeHyperlink)),t}hasActiveCodes(){return this.bold||this.dim||this.italic||this.underline||this.blink||this.inverse||this.hidden||this.strikethrough||this.fgColor!==null||this.bgColor!==null||this.activeHyperlink!==null}getLineEndReset(){let e="";return this.underline&&(e+="\x1B[24m"),this.activeHyperlink&&(e+=xi(this.activeHyperlink.terminator)),e}};function bi(i,e){let t=0;for(;t<i.length;){let s=W(i,t);s?(e.process(s.code),t+=s.length):t++}}function En(i){let e=[],t="",s="",r=null,n=0,o=()=>{t&&(e.push(t),t="",r=null)};for(;n<i.length;){let l=W(i,n);if(l){s+=l.code,n+=l.length;continue}let a=n;for(;a<i.length&&!W(i,a);)a++;for(let{segment:c}of Y.segment(i.slice(n,a))){let h=c===" ";if(!h&&mt.test(c)){o();let f=s+c;s="",e.push(f);continue}let u=h?"space":"word";t&&r!==u&&o(),s&&(t+=s,s=""),r=u,t+=c}n=a}return s&&(t?t+=s:e.length>0?e[e.length-1]+=s:t=s),t&&e.push(t),e}function ie(i,e){if(!i)return[""];let t=i.split(/\r\n|\r|\n/),s=[],r=new He;for(let n of t){let o=s.length>0?r.getActiveCodes():"",l=On(o+n,e);for(let a of l)s.push(a);bi(n,r)}return s.length>0?s:[""]}function On(i,e){if(!i)return[""];if(y(i)<=e)return[i];let s=[],r=new He,n=En(i),o="",l=0;for(let a of n){let c=y(a),h=a.trim()==="";if(c>e&&!h){if(o){let d=r.getLineEndReset();d&&(o+=d),s.push(o),o="",l=0}let f=Bn(a,e,r);for(let d=0;d<f.length-1;d++)s.push(f[d]);o=f[f.length-1],l=y(o);continue}if(l+c>e&&l>0){let f=o.trimEnd(),d=r.getLineEndReset();d&&(f+=d),s.push(f),h?(o=r.getActiveCodes(),l=0):(o=r.getActiveCodes()+a,l=c)}else o+=a,l+=c;bi(a,r)}return o&&s.push(o),s.length>0?s.map(a=>a.trimEnd()):[""]}var os=/[(){}[\]<>.,;:'"!?+\-=*/\\|&%^$#@~`]/;function U(i){return/\s/.test(i)}function Bn(i,e,t){let s=[],r=t.getActiveCodes(),n=0,o=0,l=[];for(;o<i.length;){let a=W(i,o);if(a)l.push({type:"ansi",value:a.code}),o+=a.length;else{let c=o;for(;c<i.length&&!W(i,c);)c++;let h=i.slice(o,c);for(let u of Y.segment(h))l.push({type:"grapheme",value:u.segment});o=c}}for(let a of l){if(a.type==="ansi"){r+=a.value,t.process(a.value);continue}let c=a.value;if(!c)continue;let h=y(c);if(n+h>e){let u=t.getLineEndReset();u&&(r+=u),s.push(r),r=t.getActiveCodes(),n=0}r+=c,n+=h}return r&&s.push(r),s.length>0?s:[""]}function pe(i,e,t){let s=y(i),r=Math.max(0,e-s),n=" ".repeat(r),o=i+n;return t(o)}function X(i,e,t="...",s=!1){if(e<=0)return"";if(i.length===0)return s?" ".repeat(e):"";let r=y(t);if(r>=e){let p=y(i);if(p<=e)return s?i+" ".repeat(e-p):i;let x=In(t,e);return x.width===0?s?" ".repeat(e):"":ss("",0,x.text,x.width,e,s)}if(rs(i)){if(i.length<=e)return s?i+" ".repeat(e-i.length):i;let p=e-r;return ss(i.slice(0,p),p,t,r,e,s)}let n=e-r,o="",l="",a=0,c=0,h=!0,u=!1,f=!1,d=i.includes("\x1B"),m=i.includes(" ");if(!d&&!m){for(let{segment:p}of Y.segment(i)){let x=ae(p);if(h&&c+x<=n?(o+=p,c+=x):h=!1,a+=x,a>e){u=!0;break}}f=!u}else{let p=0;for(;p<i.length;){let x=W(i,p);if(x){l+=x.code,p+=x.length;continue}if(i[p]===" "){if(h&&c+3<=n?(l&&(o+=l,l=""),o+=" ",c+=3):(h=!1,l=""),a+=3,a>e){u=!0;break}p++;continue}let S=p;for(;S<i.length&&i[S]!==" "&&!W(i,S);)S++;for(let{segment:g}of Y.segment(i.slice(p,S))){let v=ae(g);if(h&&c+v<=n?(l&&(o+=l,l=""),o+=g,c+=v):(h=!1,l=""),a+=v,a>e){u=!0;break}}if(u)break;p=S}f=p>=i.length}return!u&&f?s?i+" ".repeat(Math.max(0,e-a)):i:ss(o,c,t,r,e,s)}function N(i,e,t,s=!1){return ls(i,e,t,s).text}function ls(i,e,t,s=!1){if(t<=0)return{text:"",width:0};let r=e+t,n="",o=0,l=0,a=0,c="";for(;a<i.length;){let h=W(i,a);if(h){l>=e&&l<r?n+=h.code:l<e&&(c+=h.code),a+=h.length;continue}let u=a;for(;u<i.length&&!W(i,u);)u++;for(let{segment:f}of Y.segment(i.slice(a,u))){let d=ae(f),m=l>=e&&l<r,p=!s||l+d<=r;if(m&&p&&(c&&(n+=c,c=""),n+=f,o+=d),l+=d,l>=r)break}if(a=u,l>=r)break}return{text:n,width:o}}var is=new He;function wi(i,e,t,s,r=!1){let n="",o=0,l="",a=0,c=0,h=0,u="",f=!1,d=t+s;for(is.clear();h<i.length;){let m=W(i,h);if(m){is.process(m.code),c<e?u+=m.code:c>=t&&c<d&&f&&(l+=m.code),h+=m.length;continue}let p=h;for(;p<i.length&&!W(i,p);)p++;for(let{segment:x}of Y.segment(i.slice(h,p))){let S=ae(x);if(c<e&&c+S<=e?(u&&(n+=u,u=""),n+=x,o+=S):c>=t&&c<d&&(!r||c+S<=d)&&(f||(l+=is.getActiveCodes(),f=!0),l+=x,a+=S),c+=S,s<=0?c>=e:c>=d)break}if(h=p,s<=0?c>=e:c>=d)break}return{before:n,beforeWidth:o,after:l,afterWidth:a}}function as(i){return i!==null&&"focused"in i}var Q="\x1B_pi:c\x07";function yi(i,e){if(i===void 0)return;if(typeof i=="number")return i;let t=i.match(/^(\d+(?:\.\d+)?)%$/);if(t)return Math.floor(e*parseFloat(t[1])/100)}var ce=class{children=[];addChild(e){this.children.push(e)}removeChild(e){let t=this.children.indexOf(e);t!==-1&&this.children.splice(t,1)}clear(){this.children=[]}invalidate(){for(let e of this.children)e.invalidate?.()}render(e){let t=[];for(let s of this.children){let r=s.render(e);for(let n of r)t.push(n)}return t}},cs="\x1B[0m\x1B]8;;\x07";function xe(i,e,t,s,r){if(F(i))return i;let n=t+s,o=wi(i,t,n,r-n,!0),l=ls(e,0,s,!0),a=Math.max(0,t-o.beforeWidth),c=Math.max(0,s-l.width),h=Math.max(t,o.beforeWidth),u=Math.max(s,l.width),f=Math.max(0,r-h-u),d=Math.max(0,f-o.afterWidth),m=o.before+" ".repeat(a)+cs+l.text+" ".repeat(c)+cs+o.after+" ".repeat(d);return y(m)<=r?m:N(m,0,r,!0)}var Si=Symbol.for("@earendil-works/pi-tui/viewport");var Ie=class i extends ce{terminal;focusedComponent=null;inputListeners=new Set;onDebug;renderRequested=!1;immediateRenderScheduled=!1;renderTimer;lastRenderAt=0;static MIN_RENDER_INTERVAL_MS=16;showHardwareCursor=process.env.PI_HARDWARE_CURSOR==="1";clearOnShrink=process.env.PI_CLEAR_ON_SHRINK==="1";fullRedrawCount=0;stopped=!1;pendingOsc11BackgroundReplies=0;pendingOsc11BackgroundQueries=[];terminalColorSchemeListeners=new Set;terminalColorSchemeNotificationsEnabled=!1;logDirectory;focusOrderCounter=0;overlayStack=[];get hasOverlayEntries(){return this.overlayStack.length>0}overlayFocusRestore={status:"inactive"};constructor(e,t,s){super(),this.terminal=e,this.logDirectory=s??process.env.PI_CODING_AGENT_DIR??Ci.join(ki.homedir(),".pi","agent"),t!==void 0&&(this.showHardwareCursor=t)}resetRenderState(){}beforeTerminalStart(){}afterTerminalStart(){}beforeTerminalStop(e){}afterTerminalStop(e){}get fullRedraws(){return this.fullRedrawCount}getShowHardwareCursor(){return this.showHardwareCursor}setShowHardwareCursor(e){this.showHardwareCursor!==e&&(this.showHardwareCursor=e,e||this.terminal.hideCursor(),this.requestRender())}getClearOnShrink(){return this.clearOnShrink}setClearOnShrink(e){this.clearOnShrink=e}getFocusedComponent(){return this.focusedComponent}setFocus(e){this.setFocusInternal({component:e,overlayFocusRestore:"clear"})}setFocusInternal({component:e,overlayFocusRestore:t}){let s=this.focusedComponent,r=e,n=s?this.overlayStack.find(c=>c.component===s&&this.isOverlayVisible(c)):void 0,o=r?this.overlayStack.some(c=>c.component===r):!1,l=this.getVisibleOverlayFocusRestore();r&&!o?l.status==="blocked"&&l.blockedBy===s?l.resume.status==="focus-target"||!this.isComponentMounted(l.blockedBy)?r=this.resolveBlockedOverlayFocusResume(l):this.overlayFocusRestore={status:"blocked",overlay:l.overlay,blockedBy:r,resume:l.resume}:n&&l.status!=="inactive"&&l.overlay===n&&!this.isOverlayFocusAncestor(n,r)&&(this.overlayFocusRestore={status:"blocked",overlay:n,blockedBy:r,resume:{status:"restore-overlay"}}):r===null&&(l.status==="blocked"&&l.blockedBy===s?r=this.resolveBlockedOverlayFocusResume(l):t==="clear"&&this.clearOverlayFocusRestore()),as(this.focusedComponent)&&(this.focusedComponent.focused=!1),this.focusedComponent=r,as(r)&&(r.focused=!0);let a=r?this.overlayStack.find(c=>c.component===r&&this.isOverlayVisible(c)):void 0;a&&(this.overlayFocusRestore={status:"eligible",overlay:a})}clearOverlayFocusRestore(){this.overlayFocusRestore={status:"inactive"}}clearOverlayFocusRestoreFor(e){this.overlayFocusRestore.status!=="inactive"&&this.overlayFocusRestore.overlay===e&&this.clearOverlayFocusRestore()}resolveBlockedOverlayFocusResume(e){return e.resume.status==="restore-overlay"?e.overlay.component:(this.clearOverlayFocusRestore(),e.resume.target)}getVisibleOverlayFocusRestore(){let e=this.overlayFocusRestore;return e.status==="inactive"?e:!this.overlayStack.includes(e.overlay)||!this.isOverlayVisible(e.overlay)?{status:"inactive"}:e}isOverlayFocusAncestor(e,t){let s=new Set,r=e.preFocus;for(;r&&!s.has(r);){if(s.add(r),r===t)return!0;r=this.overlayStack.find(n=>n.component===r)?.preFocus??null}return!1}retargetOverlayPreFocus(e){for(let t of this.overlayStack)t!==e&&t.preFocus===e.component&&(t.preFocus=e.preFocus)}getMountedRoots(){return this.children}isComponentMounted(e){return this.getMountedRoots().some(t=>this.containsComponent(t,e))}containsComponent(e,t){return e===t?!0:e instanceof ce?e.children.some(s=>this.containsComponent(s,t)):!1}showOverlay(e,t){let s={component:e,...t===void 0?{}:{options:t},preFocus:this.focusedComponent,hidden:!1,focusOrder:++this.focusOrderCounter};return this.overlayStack.push(s),!t?.nonCapturing&&this.isOverlayVisible(s)&&this.setFocus(e),this.terminal.hideCursor(),this.requestRender(),{hide:()=>{let r=this.overlayStack.indexOf(s);if(r!==-1){if(this.clearOverlayFocusRestoreFor(s),this.retargetOverlayPreFocus(s),this.overlayStack.splice(r,1),this.focusedComponent===e){let n=this.getTopmostVisibleOverlay();this.setFocus(n?.component??s.preFocus)}this.overlayStack.length===0&&this.terminal.hideCursor(),this.requestRender()}},setHidden:r=>{if(s.hidden!==r){if(s.hidden=r,r){if(this.clearOverlayFocusRestoreFor(s),this.focusedComponent===e){let n=this.getTopmostVisibleOverlay();this.setFocus(n?.component??s.preFocus)}}else!t?.nonCapturing&&this.isOverlayVisible(s)&&(s.focusOrder=++this.focusOrderCounter,this.setFocus(e));this.requestRender()}},isHidden:()=>s.hidden,focus:()=>{!this.overlayStack.includes(s)||!this.isOverlayVisible(s)||(s.focusOrder=++this.focusOrderCounter,this.setFocus(e),this.requestRender())},unfocus:r=>{let n=this.focusedComponent===e,o=this.overlayFocusRestore,l=o.status!=="inactive"&&o.overlay===s;if(!(!n&&!l)){if(o.status==="blocked"&&o.overlay===s&&this.focusedComponent===o.blockedBy){r?this.overlayFocusRestore={status:"blocked",overlay:s,blockedBy:o.blockedBy,resume:{status:"focus-target",target:r.target}}:this.clearOverlayFocusRestore(),this.requestRender();return}if(this.clearOverlayFocusRestoreFor(s),n||r){let a=this.getTopmostVisibleOverlay(),c=a&&a!==s?a.component:s.preFocus;this.setFocus(r?r.target:c)}this.requestRender()}},isFocused:()=>this.focusedComponent===e}}hideOverlay(){let e=this.overlayStack[this.overlayStack.length-1];if(e){if(this.clearOverlayFocusRestoreFor(e),this.retargetOverlayPreFocus(e),this.overlayStack.pop(),this.focusedComponent===e.component){let t=this.getTopmostVisibleOverlay();this.setFocus(t?.component??e.preFocus)}this.overlayStack.length===0&&this.terminal.hideCursor(),this.requestRender()}}hasOverlay(){return this.overlayStack.some(e=>this.isOverlayVisible(e))}isOverlayVisible(e){return e.hidden?!1:e.options?.visible?e.options.visible(this.terminal.columns,this.terminal.rows):!0}getTopmostVisibleOverlay(){let e;for(let t of this.overlayStack)t.options?.nonCapturing||!this.isOverlayVisible(t)||(!e||t.focusOrder>e.focusOrder)&&(e=t);return e}invalidate(){for(let e of this.getMountedRoots())e.invalidate();for(let e of this.overlayStack)e.component.invalidate()}start(){this.stopped=!1,this.beforeTerminalStart(),this.terminal.start(e=>this.handleTerminalInput(e),()=>this.requestRender()),this.afterTerminalStart(),this.terminal.hideCursor(),this.terminalColorSchemeNotificationsEnabled&&this.terminal.write("\x1B[?2031h"),this.queryCellSize(),this.requestRender()}addInputListener(e){return this.inputListeners.add(e),()=>{this.inputListeners.delete(e)}}removeInputListener(e){this.inputListeners.delete(e)}onTerminalColorSchemeChange(e){return this.terminalColorSchemeListeners.add(e),()=>{this.terminalColorSchemeListeners.delete(e)}}setTerminalColorSchemeNotifications(e){this.terminalColorSchemeNotificationsEnabled!==e&&(this.terminalColorSchemeNotificationsEnabled=e,this.stopped||this.terminal.write(e?"\x1B[?2031h":"\x1B[?2031l"))}queryCellSize(){de().images&&this.terminal.write("\x1B[16t")}stop(e={}){this.stopped=!0,this.cancelRenderTimer(),this.terminalColorSchemeNotificationsEnabled&&this.terminal.write("\x1B[?2031l"),this.beforeTerminalStop(e),this.terminal.showCursor(),this.terminal.stop(),this.afterTerminalStop(e)}renderNow(e=!1){e&&this.resetRenderState(),this.renderRequested=!1,this.cancelRenderTimer(),this.lastRenderAt=xt.now(),this.doRender()}requestRender(e=!1){if(e){this.resetRenderState(),this.requestImmediateRender();return}this.renderRequested||(this.renderRequested=!0,process.nextTick(()=>this.scheduleRender()))}requestImmediateRender(){this.cancelRenderTimer(),this.renderRequested=!0,!this.immediateRenderScheduled&&(this.immediateRenderScheduled=!0,process.nextTick(()=>{this.immediateRenderScheduled=!1,!(this.stopped||!this.renderRequested)&&(this.cancelRenderTimer(),this.renderRequested=!1,this.lastRenderAt=xt.now(),this.doRender())}))}cancelRenderTimer(){this.renderTimer&&(clearTimeout(this.renderTimer),this.renderTimer=void 0)}scheduleRender(){if(this.stopped||this.renderTimer||!this.renderRequested)return;let e=xt.now()-this.lastRenderAt,t=Math.max(0,i.MIN_RENDER_INTERVAL_MS-e);this.renderTimer=setTimeout(()=>{this.renderTimer=void 0,!(this.stopped||!this.renderRequested)&&(this.renderRequested=!1,this.lastRenderAt=xt.now(),this.doRender(),this.renderRequested&&this.scheduleRender())},t)}handleTerminalInput(e){if(this.consumeOsc11BackgroundResponse(e)||this.consumeTerminalColorSchemeReport(e))return;if(this.inputListeners.size>0){let r=e;for(let n of this.inputListeners){let o=n(r);if(o?.consume)return;o?.data!==void 0&&(r=o.data)}if(r.length===0)return;e=r}if(this.consumeCellSizeResponse(e))return;if(te(e,"shift+ctrl+d")&&this.onDebug){this.onDebug();return}let t=this.overlayStack.find(r=>r.component===this.focusedComponent);if(t&&!this.isOverlayVisible(t)){let r=this.getTopmostVisibleOverlay();r?this.setFocus(r.component):this.setFocusInternal({component:t.preFocus,overlayFocusRestore:"preserve"})}if(!this.overlayStack.some(r=>r.component===this.focusedComponent)){let r=this.getVisibleOverlayFocusRestore();r.status==="eligible"?this.setFocus(r.overlay.component):r.status==="blocked"&&r.blockedBy!==this.focusedComponent&&(r.resume.status==="restore-overlay"?this.setFocus(r.overlay.component):(this.clearOverlayFocusRestore(),this.setFocus(r.resume.target)))}if(this.focusedComponent?.handleInput){if(Ne(e)&&!this.focusedComponent.wantsKeyRelease)return;this.focusedComponent.handleInput(e),this.requestImmediateRender()}}consumeOsc11BackgroundResponse(e){if(this.pendingOsc11BackgroundReplies<=0||!Js(e))return!1;let t=Gt(e);this.pendingOsc11BackgroundReplies-=1;let s=this.pendingOsc11BackgroundQueries.shift();return s&&!s.settled&&(s.settled=!0,s.timer&&(clearTimeout(s.timer),s.timer=void 0),s.resolve?.(t),s.resolve=void 0),!0}consumeTerminalColorSchemeReport(e){let t=jt(e);if(!t)return!1;for(let s of this.terminalColorSchemeListeners)s(t);return!0}consumeCellSizeResponse(e){let t=e.match(/^\x1b\[6;(\d+);(\d+)t$/);if(!t)return!1;let s=parseInt(t[1],10),r=parseInt(t[2],10);return s<=0||r<=0||(Yt({widthPx:r,heightPx:s}),this.invalidate(),this.requestRender()),!0}resolveOverlayLayout(e,t,s,r){let n=e??{},o=typeof n.margin=="number"?{top:n.margin,right:n.margin,bottom:n.margin,left:n.margin}:n.margin??{},l=Math.max(0,o.top??0),a=Math.max(0,o.right??0),c=Math.max(0,o.bottom??0),h=Math.max(0,o.left??0),u=Math.max(1,s-h-a),f=Math.max(1,r-l-c),d=yi(n.width,s)??Math.min(80,u);n.minWidth!==void 0&&(d=Math.max(d,n.minWidth)),d=Math.max(1,Math.min(d,u));let m=yi(n.maxHeight,r);m!==void 0&&(m=Math.max(1,Math.min(m,f)));let p=m!==void 0?Math.min(t,m):t,x,S;if(n.row!==void 0)if(typeof n.row=="string"){let g=n.row.match(/^(\d+(?:\.\d+)?)%$/);if(g){let v=Math.max(0,f-p),C=parseFloat(g[1])/100;x=l+Math.floor(v*C)}else x=this.resolveAnchorRow("center",p,f,l)}else x=n.row;else{let g=n.anchor??"center";x=this.resolveAnchorRow(g,p,f,l)}if(n.col!==void 0)if(typeof n.col=="string"){let g=n.col.match(/^(\d+(?:\.\d+)?)%$/);if(g){let v=Math.max(0,u-d),C=parseFloat(g[1])/100;S=h+Math.floor(v*C)}else S=this.resolveAnchorCol("center",d,u,h)}else S=n.col;else{let g=n.anchor??"center";S=this.resolveAnchorCol(g,d,u,h)}return n.offsetY!==void 0&&(x+=n.offsetY),n.offsetX!==void 0&&(S+=n.offsetX),x=Math.max(l,Math.min(x,r-c-p)),S=Math.max(h,Math.min(S,s-a-d)),{width:d,row:x,col:S,maxHeight:m}}resolveAnchorRow(e,t,s,r){switch(e){case"top-left":case"top-center":case"top-right":return r;case"bottom-left":case"bottom-center":case"bottom-right":return r+s-t;case"left-center":case"center":case"right-center":return r+Math.floor((s-t)/2)}}resolveAnchorCol(e,t,s,r){switch(e){case"top-left":case"left-center":case"bottom-left":return r;case"top-right":case"right-center":case"bottom-right":return r+s-t;case"top-center":case"center":case"bottom-center":return r+Math.floor((s-t)/2)}}compositeOverlays(e,t,s){if(this.overlayStack.length===0)return e;let r=[...e],n=[],o=r.length,l=this.overlayStack.filter(h=>this.isOverlayVisible(h));l.sort((h,u)=>h.focusOrder-u.focusOrder);for(let h of l){let{component:u,options:f}=h,{width:d,maxHeight:m}=this.resolveOverlayLayout(f,0,t,s),p=u.render(d);m!==void 0&&p.length>m&&(p=p.slice(0,m));let{row:x,col:S}=this.resolveOverlayLayout(f,p.length,t,s);n.push({overlayLines:p,row:x,col:S,w:d}),o=Math.max(o,x+p.length)}let a=Math.max(r.length,s,o);for(;r.length<a;)r.push("");let c=Math.max(0,a-s);for(let{overlayLines:h,row:u,col:f,w:d}of n)for(let m=0;m<h.length;m++){let p=c+u+m;if(p>=0&&p<r.length){let x=y(h[m])>d?N(h[m],0,d,!0):h[m];r[p]=this.compositeLineAt(r[p],x,f,d,t)}}return r}applyLineResets(e){let t=cs;for(let s=0;s<e.length;s++){let r=e[s];F(r)||(e[s]=mi(r)+t)}return e}compositeLineAt(e,t,s,r,n){return xe(e,t,s,r,n)}extractCursorPosition(e,t){let s=Math.max(0,e.length-t);for(let r=e.length-1;r>=s;r--){let n=e[r],o=n.indexOf(Q);if(o!==-1){let l=n.slice(0,o),a=y(l);return e[r]=n.slice(0,o)+n.slice(o+Q.length),{row:r,col:a}}}return null}queryTerminalBackgroundColor({timeoutMs:e}){return new Promise(t=>{let s={settled:!1,resolve:t,timer:void 0};s.timer=setTimeout(()=>{s.settled||(s.settled=!0,s.timer=void 0,s.resolve?.(void 0),s.resolve=void 0)},e),this.pendingOsc11BackgroundQueries.push(s),this.pendingOsc11BackgroundReplies+=1,this.terminal.write("\x1B]11;?\x07")})}queryTerminalColorScheme({timeoutMs:e}){return new Promise(t=>{let s=!1,r,n=()=>{},o=l=>{s||(s=!0,r&&(clearTimeout(r),r=void 0),n(),t(l))};n=this.onTerminalColorSchemeChange(o),r=setTimeout(()=>o(void 0),e),this.terminal.write("\x1B[?996n")})}};import*as he from"node:fs";import*as be from"node:path";var vi="\x1B_G";function Li(i){let e=i.indexOf(vi);if(e===-1)return;let t=e+vi.length,s=i.indexOf(";",t);if(s===-1)return;let r=[],n=1;for(let o of i.slice(t,s).split(",")){let[l,a]=o.split("=",2);if(a===void 0)continue;let c=Number(a);!Number.isInteger(c)||c<=0||c>4294967295||(l==="i"?r.push(c):l==="r"&&(n=c))}return{ids:r,rows:n}}function hs(i){return Li(i)?.ids??[]}function _n(i){return Li(i)?.rows??1}function Wn(){return!!process.env.TERMUX_VERSION}var us=class extends Ie{mode="regular";previousLines=[];previousKittyImageIds=new Set;previousWidth=0;previousHeight=0;cursorRow=0;hardwareCursorRow=0;maxLinesRendered=0;previousViewportTop=0;captureRenderState(){return{previousLines:[...this.previousLines],previousWidth:this.previousWidth,previousHeight:this.previousHeight,cursorRow:this.cursorRow,hardwareCursorRow:this.hardwareCursorRow,maxLinesRendered:this.maxLinesRendered,previousViewportTop:this.previousViewportTop}}restoreRenderState(e){this.previousLines=e.previousLines.map(t=>F(t)?"":t),this.previousKittyImageIds=new Set,this.previousWidth=e.previousWidth,this.previousHeight=e.previousHeight,this.cursorRow=e.cursorRow,this.hardwareCursorRow=e.hardwareCursorRow,this.maxLinesRendered=e.maxLinesRendered,this.previousViewportTop=e.previousViewportTop}resetRenderState(){this.previousLines=[],this.previousWidth=-1,this.previousHeight=-1,this.cursorRow=0,this.hardwareCursorRow=0,this.maxLinesRendered=0,this.previousViewportTop=0}beforeTerminalStop(e){if(e.preserveScreen||this.previousLines.length===0)return;this.terminal.write(" ");let s=this.previousLines.length-this.hardwareCursorRow;s>0?this.terminal.write(`\x1B[${s}B`):s<0&&this.terminal.write(`\x1B[${-s}A`),this.terminal.write(`\r
4
- `)}collectKittyImageIds(e){let t=new Set;for(let s of e)for(let r of hs(s))t.add(r);return t}deleteKittyImages(e){let t="";for(let s of e)t+=Ve(s);return t}getKittyImageReservedRows(e,t,s=e.length-1){let r=_n(e[t]??"");if(r<=1)return 1;let n=Math.min(r,s-t+1,e.length-t),o=1;for(;o<n;){let l=e[t+o]??"";if(F(l)||y(l)>0)break;o++}return o}expandChangedRangeForKittyImages(e,t,s){let r=e,n=t,o=l=>{for(let a=0;a<l.length;a++){if(hs(l[a]).length===0)continue;let c=a+this.getKittyImageReservedRows(l,a)-1;(a>=e||a<=t&&c>=e)&&(r=Math.min(r,a),n=Math.max(n,c))}};return o(this.previousLines),o(s),{firstChanged:r,lastChanged:n}}deleteChangedKittyImages(e,t){if(e<0||t<e)return"";let s=new Set,r=Math.min(t,this.previousLines.length-1);for(let n=e;n<=r;n++)for(let o of hs(this.previousLines[n]??""))s.add(o);return this.deleteKittyImages(s)}doRender(){if(this.stopped)return;let e=this.terminal.columns,t=this.terminal.rows,s=this.previousWidth!==0&&this.previousWidth!==e,r=this.previousHeight!==0&&this.previousHeight!==t,n=this.previousHeight>0?this.previousViewportTop+this.previousHeight:t,o=r?Math.max(0,n-t):this.previousViewportTop,l=o,a=this.hardwareCursorRow,c=b=>{let k=a-o;return b-l-k},h=this.render(e);this.hasOverlayEntries&&(h=this.compositeOverlays(h,e,t));let u=this.extractCursorPosition(h,t);h=this.applyLineResets(h);let f=b=>{this.fullRedrawCount+=1;let k="\x1B[?2026h";b&&(k+=this.deleteKittyImages(this.previousKittyImageIds),k+="\x1B[2J\x1B[H\x1B[3J");for(let B=0;B<h.length;B++){B>0&&(k+=`\r
5
- `);let D=h[B],z=F(D)?this.getKittyImageReservedRows(h,B):1;if(z>1&&z<=t){for(let We=1;We<z;We++)k+=`\r
6
- `;k+=`\x1B[${z-1}A`,k+=D,k+=`\x1B[${z-1}B`,B+=z-1;continue}k+=D}k+="\x1B[?2026l",this.terminal.write(k),this.cursorRow=Math.max(0,h.length-1),this.hardwareCursorRow=this.cursorRow,b?this.maxLinesRendered=h.length:this.maxLinesRendered=Math.max(this.maxLinesRendered,h.length);let A=Math.max(t,h.length);this.previousViewportTop=Math.max(0,A-t),this.positionHardwareCursor(u,h.length),this.previousLines=h,this.previousKittyImageIds=this.collectKittyImageIds(h),this.previousWidth=e,this.previousHeight=t},d=process.env.PI_DEBUG_REDRAW==="1",m=b=>{if(!d)return;let k=be.join(this.logDirectory,"pi-debug.log"),A=`[${new Date().toISOString()}] fullRender: ${b} (prev=${this.previousLines.length}, new=${h.length}, height=${t})
7
- `;he.mkdirSync(be.dirname(k),{recursive:!0}),he.appendFileSync(k,A)};if(this.previousLines.length===0&&!s&&!r){m("first render"),f(!1);return}if(s){m(`terminal width changed (${this.previousWidth} -> ${e})`),f(!0);return}if(r&&!Wn()){m(`terminal height changed (${this.previousHeight} -> ${t})`),f(!0);return}if(this.getClearOnShrink()&&h.length<this.maxLinesRendered&&!this.hasOverlayEntries){m(`clearOnShrink (maxLinesRendered=${this.maxLinesRendered})`),f(!0);return}let p=-1,x=-1,S=Math.max(h.length,this.previousLines.length);for(let b=0;b<S;b++){let k=b<this.previousLines.length?this.previousLines[b]:"",A=b<h.length?h[b]:"";k!==A&&(p===-1&&(p=b),x=b)}let g=h.length>this.previousLines.length;if(g&&(p===-1&&(p=this.previousLines.length),x=h.length-1),p!==-1){let b=this.expandChangedRangeForKittyImages(p,x,h);p=b.firstChanged,x=b.lastChanged}let v=g&&p===this.previousLines.length&&p>0;if(p===-1){this.positionHardwareCursor(u,h.length),this.previousViewportTop=o,this.previousHeight=t;return}if(p>=h.length){if(this.previousLines.length>h.length){let b="\x1B[?2026h";b+=this.deleteChangedKittyImages(p,x);let k=Math.max(0,h.length-1);if(k<o){m(`deleted lines moved viewport up (${k} < ${o})`),f(!0);return}let A=c(k);A>0?b+=`\x1B[${A}B`:A<0&&(b+=`\x1B[${-A}A`),b+="\r";let B=this.previousLines.length-h.length;if(B>t){m(`extraLines > height (${B} > ${t})`),f(!0);return}let D=h.length===0?0:1;B>0&&D>0&&(b+=`\x1B[${D}B`);for(let z=0;z<B;z++)b+="\r\x1B[2K",z<B-1&&(b+="\x1B[1B");let fe=Math.max(0,B-1+D);fe>0&&(b+=`\x1B[${fe}A`),b+="\x1B[?2026l",this.terminal.write(b),this.cursorRow=k,this.hardwareCursorRow=k}this.positionHardwareCursor(u,h.length),this.previousLines=h,this.previousKittyImageIds=this.collectKittyImageIds(h),this.previousWidth=e,this.previousHeight=t,this.previousViewportTop=o;return}if(p<o){m(`firstChanged < viewportTop (${p} < ${o})`),f(!0);return}let C="\x1B[?2026h";C+=this.deleteChangedKittyImages(p,x);let T=o+t-1,w=v?p-1:p;if(w>T){let b=Math.max(0,Math.min(t-1,a-o)),k=t-1-b;k>0&&(C+=`\x1B[${k}B`);let A=w-T;C+=`\r
8
- `.repeat(A),o+=A,l+=A,a=w}let R=c(w);R>0?C+=`\x1B[${R}B`:R<0&&(C+=`\x1B[${-R}A`),C+=v?`\r
9
- `:"\r";let M=Math.min(x,h.length-1);for(let b=p;b<=M;b++){b>p&&(C+=`\r
10
- `);let k=h[b],A=F(k),B=A?this.getKittyImageReservedRows(h,b,M):1;if(B>1){let D=b-l;if(D<0||D+B>t){m(`kitty image pre-clear would scroll (${D} + ${B} > ${t})`),f(!0);return}C+="\x1B[2K";for(let fe=1;fe<B;fe++)C+=`\r
11
- \x1B[2K`;C+=`\x1B[${B-1}A`,C+=k,C+=`\x1B[${B-1}B`,b+=B-1;continue}if(C+="\x1B[2K",!A&&y(k)>e){let D=be.join(this.logDirectory,"pi-crash.log"),fe=[`Crash at ${new Date().toISOString()}`,`Terminal width: ${e}`,`Line ${b} visible width: ${y(k)}`,"","=== All rendered lines ===",...h.map((We,Rr)=>`[${Rr}] (w=${y(We)}) ${We}`),""].join(`
12
- `);he.mkdirSync(be.dirname(D),{recursive:!0}),he.writeFileSync(D,fe),this.stop();let z=[`Rendered line ${b} exceeds terminal width (${y(k)} > ${e}).`,"","This is likely caused by a custom TUI component not truncating its output.","Use visibleWidth() to measure and truncateToWidth() to truncate lines.","",`Debug log written to: ${D}`].join(`
13
- `);throw new Error(z)}C+=k}let P=M;if(this.previousLines.length>h.length){if(M<h.length-1){let k=h.length-1-M;C+=`\x1B[${k}B`,P=h.length-1}let b=this.previousLines.length-h.length;for(let k=h.length;k<this.previousLines.length;k++)C+=`\r
14
- \x1B[2K`;C+=`\x1B[${b}A`}if(C+="\x1B[?2026l",process.env.PI_TUI_DEBUG==="1"){let b="/tmp/tui";he.mkdirSync(b,{recursive:!0});let k=be.join(b,`render-${Date.now()}-${Math.random().toString(36).slice(2)}.log`),A=[`firstChanged: ${p}`,`viewportTop: ${l}`,`cursorRow: ${this.cursorRow}`,`height: ${t}`,`lineDiff: ${R}`,`hardwareCursorRow: ${a}`,`renderEnd: ${M}`,`finalCursorRow: ${P}`,`cursorPos: ${JSON.stringify(u)}`,`newLines.length: ${h.length}`,`previousLines.length: ${this.previousLines.length}`,"","=== newLines ===",JSON.stringify(h,null,2),"","=== previousLines ===",JSON.stringify(this.previousLines,null,2),"","=== buffer ===",JSON.stringify(C)].join(`
15
- `);he.writeFileSync(k,A)}this.terminal.write(C),this.cursorRow=Math.max(0,h.length-1),this.hardwareCursorRow=P,this.maxLinesRendered=Math.max(this.maxLinesRendered,h.length),this.previousViewportTop=Math.max(o,P-t+1),this.positionHardwareCursor(u,h.length),this.previousLines=h,this.previousKittyImageIds=this.collectKittyImageIds(h),this.previousWidth=e,this.previousHeight=t}positionHardwareCursor(e,t){if(!e||t<=0){this.terminal.hideCursor();return}let s=Math.max(0,Math.min(e.row,t-1)),r=Math.max(0,e.col),n=s-this.hardwareCursorRow,o="";n>0?o+=`\x1B[${n}B`:n<0&&(o+=`\x1B[${-n}A`),o+=`\x1B[${r+1}G`,o&&this.terminal.write(o),this.hardwareCursorRow=s,this.getShowHardwareCursor()?this.terminal.showCursor():this.terminal.hideCursor()}};var bt=class{text;paddingX;paddingY;customBgFn;cachedText;cachedWidth;cachedLines;constructor(e="",t=1,s=1,r){this.text=e,this.paddingX=t,this.paddingY=s,this.customBgFn=r}setText(e){this.text=e,this.cachedText=void 0,this.cachedWidth=void 0,this.cachedLines=void 0}setCustomBgFn(e){this.customBgFn=e,this.cachedText=void 0,this.cachedWidth=void 0,this.cachedLines=void 0}invalidate(){this.cachedText=void 0,this.cachedWidth=void 0,this.cachedLines=void 0}render(e){if(this.cachedLines&&this.cachedText===this.text&&this.cachedWidth===e)return this.cachedLines;if(!this.text||this.text.trim()===""){let u=[];return this.cachedText=this.text,this.cachedWidth=e,this.cachedLines=u,u}let t=this.text.replace(/\t/g," "),s=Math.max(1,e-this.paddingX*2),r=ie(t,s),n=" ".repeat(this.paddingX),o=" ".repeat(this.paddingX),l=[];for(let u of r){let f=n+u+o;if(this.customBgFn)l.push(pe(f,e,this.customBgFn));else{let d=y(f),m=Math.max(0,e-d);l.push(f+" ".repeat(m))}}let a=" ".repeat(e),c=[];for(let u=0;u<this.paddingY;u++){let f=this.customBgFn?pe(a,e,this.customBgFn):a;c.push(f)}let h=[...c,...l,...c];return this.cachedText=this.text,this.cachedWidth=e,this.cachedLines=h,h.length>0?h:[""]}};function ms(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var ke=ms();function Ei(i){ke=i}var we={exec:()=>null};function Ae(i){let e=[];return t=>{let s=Math.max(0,Math.min(3,t-1)),r=e[s];return r||(r=i(s),e[s]=r),r}}function $(i,e=""){let t=typeof i=="string"?i:i.source,s={replace:(r,n)=>{let o=typeof n=="string"?n:n.source;return o=o.replace(V.caret,"$1"),t=t.replace(r,o),s},getRegex:()=>new RegExp(t,e)};return s}var Dn=((i="")=>{try{return!!new RegExp("(?<=1)(?<!1)"+i)}catch{return!1}})(),V={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,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,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:i=>new RegExp(`^( {0,3}${i})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:Ae(i=>new RegExp(`^ {0,${i}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:Ae(i=>new RegExp(`^ {0,${i}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:Ae(i=>new RegExp(`^ {0,${i}}(?:\`\`\`|~~~)`)),headingBeginRegex:Ae(i=>new RegExp(`^ {0,${i}}#`)),htmlBeginRegex:Ae(i=>new RegExp(`^ {0,${i}}<(?:[a-z].*>|!--)`,"i")),blockquoteBeginRegex:Ae(i=>new RegExp(`^ {0,${i}}>`))},Fn=/^(?:[ \t]*(?:\n|$))+/,Nn=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Kn=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,je=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Vn=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,gs=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Oi=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Bi=$(Oi).replace(/bull/g,gs).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(),qn=$(Oi).replace(/bull/g,gs).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(),xs=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Hn=/^[^\n]+/,bs=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Un=$(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",bs).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),zn=$(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,gs).getRegex(),Ct="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",ws=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Gn=$("^ {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[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",ws).replace("tag",Ct).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),_i=$(xs).replace("hr",je).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[.)])[ \\t]+[^ \\t\\n]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ct).getRegex(),jn=$(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",_i).getRegex(),ys={blockquote:jn,code:Nn,def:Un,fences:Kn,heading:Vn,hr:je,html:Gn,lheading:Bi,list:zn,newline:Fn,paragraph:_i,table:we,text:Hn},Ti=$("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",je).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ct).getRegex(),Yn={...ys,lheading:qn,table:Ti,paragraph:$(xs).replace("hr",je).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Ti).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Ct).getRegex()},Xn={...ys,html:$(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",ws).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:$(xs).replace("hr",je).replace("heading",` *#{1,6} *[^
16
- ]`).replace("lheading",Bi).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Qn=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Zn=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Wi=/^( {2,}|\\)\n(?!\s*$)/,Jn=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Pe=/[\p{P}\p{S}]/u,St=/[\s\p{P}\p{S}]/u,ks=/[^\s\p{P}\p{S}]/u,eo=$(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,St).getRegex(),Di=/(?!~)[\p{P}\p{S}]/u,to=/(?!~)[\s\p{P}\p{S}]/u,so=/(?:[^\s\p{P}\p{S}]|~)/u,io=$(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",Dn?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),Fi=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,ro=$(Fi,"u").replace(/punct/g,Pe).getRegex(),no=$(Fi,"u").replace(/punct/g,Di).getRegex(),Ni="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",oo=$(Ni,"gu").replace(/notPunctSpace/g,ks).replace(/punctSpace/g,St).replace(/punct/g,Pe).getRegex(),lo=$(Ni,"gu").replace(/notPunctSpace/g,so).replace(/punctSpace/g,to).replace(/punct/g,Di).getRegex(),ao=$("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,ks).replace(/punctSpace/g,St).replace(/punct/g,Pe).getRegex(),co=$(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,Pe).getRegex(),ho="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",uo=$(ho,"gu").replace(/notPunctSpace/g,ks).replace(/punctSpace/g,St).replace(/punct/g,Pe).getRegex(),fo=$(/\\(punct)/,"gu").replace(/punct/g,Pe).getRegex(),po=$(/^<(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(),mo=$(ws).replace("(?:-->|$)","-->").getRegex(),go=$("^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",mo).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),yt=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,xo=$(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",yt).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Ki=$(/^!?\[(label)\]\[(ref)\]/).replace("label",yt).replace("ref",bs).getRegex(),Vi=$(/^!?\[(ref)\](?:\[\])?/).replace("ref",bs).getRegex(),bo=$("reflink|nolink(?!\\()","g").replace("reflink",Ki).replace("nolink",Vi).getRegex(),Ri=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Cs={_backpedal:we,anyPunctuation:fo,autolink:po,blockSkip:io,br:Wi,code:Zn,del:we,delLDelim:we,delRDelim:we,emStrongLDelim:ro,emStrongRDelimAst:oo,emStrongRDelimUnd:ao,escape:Qn,link:xo,nolink:Vi,punctuation:eo,reflink:Ki,reflinkSearch:bo,tag:go,text:Jn,url:we},wo={...Cs,link:$(/^!?\[(label)\]\((.*?)\)/).replace("label",yt).getRegex(),reflink:$(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",yt).getRegex()},fs={...Cs,emStrongRDelimAst:lo,emStrongLDelim:no,delLDelim:co,delRDelim:uo,url:$(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",Ri).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:$(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",Ri).getRegex()},yo={...fs,br:$(Wi).replace("{2,}","*").getRegex(),text:$(fs.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},wt={normal:ys,gfm:Yn,pedantic:Xn},ze={normal:Cs,gfm:fs,breaks:yo,pedantic:wo},ko={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Ii=i=>ko[i];function re(i,e){if(e){if(V.escapeTest.test(i))return i.replace(V.escapeReplace,Ii)}else if(V.escapeTestNoEncode.test(i))return i.replace(V.escapeReplaceNoEncode,Ii);return i}function Ai(i){try{i=encodeURI(i).replace(V.percentDecode,"%")}catch{return null}return i}function Mi(i,e){let t=i.replace(V.findPipe,(n,o,l)=>{let a=!1,c=o;for(;--c>=0&&l[c]==="\\";)a=!a;return a?"|":" |"}),s=t.split(V.splitPipe),r=0;if(s[0].trim()||s.shift(),s.length>0&&!s.at(-1)?.trim()&&s.pop(),e)if(s.length>e)s.splice(e);else for(;s.length<e;)s.push("");for(;r<s.length;r++)s[r]=s[r].trim().replace(V.slashPipe,"|");return s}function me(i,e,t){let s=i.length;if(s===0)return"";let r=0;for(;r<s;){let n=i.charAt(s-r-1);if(n===e&&!t)r++;else if(n!==e&&t)r++;else break}return i.slice(0,s-r)}function Pi(i){let e=i.split(`
17
- `),t=e.length-1;for(;t>=0&&V.blankLine.test(e[t]);)t--;return e.length-t<=2?i:e.slice(0,t+1).join(`
18
- `)}function Co(i,e){if(i.indexOf(e[1])===-1)return-1;let t=0;for(let s=0;s<i.length;s++)if(i[s]==="\\")s++;else if(i[s]===e[0])t++;else if(i[s]===e[1]&&(t--,t<0))return s;return t>0?-2:-1}function So(i,e=0){let t=e,s="";for(let r of i)if(r===" "){let n=4-t%4;s+=" ".repeat(n),t+=n}else s+=r,t++;return s}function $i(i,e,t,s,r){let n=e.href,o=e.title||null,l=i[1].replace(r.other.outputLinkReplace,"$1");s.state.inLink=!0;let a={type:i[0].charAt(0)==="!"?"image":"link",raw:t,href:n,title:o,text:l,tokens:s.inlineTokens(l)};return s.state.inLink=!1,a}function vo(i,e,t){let s=i.match(t.other.indentCodeCompensation);if(s===null)return e;let r=s[1];return e.split(`
19
- `).map(n=>{let o=n.match(t.other.beginningSpace);if(o===null)return n;let[l]=o;return l.length>=r.length?n.slice(r.length):n}).join(`
20
- `)}var Me=class{options;rules;lexer;constructor(i){this.options=i||ke}space(i){let e=this.rules.block.newline.exec(i);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(i){let e=this.rules.block.code.exec(i);if(e){let t=this.options.pedantic?e[0]:Pi(e[0]),s=t.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t,codeBlockStyle:"indented",text:s}}}fences(i){let e=this.rules.block.fences.exec(i);if(e){let t=e[0],s=vo(t,e[3]||"",this.rules);return{type:"code",raw:t,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:s}}}heading(i){let e=this.rules.block.heading.exec(i);if(e){let t=e[2].trim();if(this.rules.other.endingHash.test(t)){let s=me(t,"#");(this.options.pedantic||!s||this.rules.other.endingSpaceChar.test(s))&&(t=s.trim())}return{type:"heading",raw:me(e[0],`
21
- `),depth:e[1].length,text:t,tokens:this.lexer.inline(t)}}}hr(i){let e=this.rules.block.hr.exec(i);if(e)return{type:"hr",raw:me(e[0],`
22
- `)}}blockquote(i){let e=this.rules.block.blockquote.exec(i);if(e){let t=me(e[0],`
23
- `).split(`
24
- `),s="",r="",n=[];for(;t.length>0;){let o=!1,l=[],a;for(a=0;a<t.length;a++)if(this.rules.other.blockquoteStart.test(t[a]))l.push(t[a]),o=!0;else if(!o)l.push(t[a]);else break;t=t.slice(a);let c=l.join(`
25
- `),h=c.replace(this.rules.other.blockquoteSetextReplace,`
26
- $1`).replace(this.rules.other.blockquoteSetextReplace2,"");s=s?`${s}
27
- ${c}`:c,r=r?`${r}
28
- ${h}`:h;let u=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(h,n,!0),this.lexer.state.top=u,t.length===0)break;let f=n.at(-1);if(f?.type==="code")break;if(f?.type==="blockquote"){let d=f,m=d.raw+`
29
- `+t.join(`
30
- `),p=this.blockquote(m);n[n.length-1]=p,s=s.substring(0,s.length-d.raw.length)+p.raw,r=r.substring(0,r.length-d.text.length)+p.text;break}else if(f?.type==="list"){let d=f,m=d.raw+`
31
- `+t.join(`
32
- `),p=this.list(m);n[n.length-1]=p,s=s.substring(0,s.length-f.raw.length)+p.raw,r=r.substring(0,r.length-d.raw.length)+p.raw,t=m.substring(n.at(-1).raw.length).split(`
33
- `);continue}}return{type:"blockquote",raw:s,tokens:n,text:r}}}list(i){let e=this.rules.block.list.exec(i);if(e){let t=e[1].trim(),s=t.length>1,r={type:"list",raw:"",ordered:s,start:s?+t.slice(0,-1):"",loose:!1,items:[]};t=s?`\\d{1,9}\\${t.slice(-1)}`:`\\${t}`,this.options.pedantic&&(t=s?t:"[*+-]");let n=this.rules.other.listItemRegex(t),o=!1;for(;i;){let a=!1,c="",h="";if(!(e=n.exec(i))||this.rules.block.hr.test(i))break;c=e[0],i=i.substring(c.length);let u=So(e[2].split(`
34
- `,1)[0],e[1].length),f=i.split(`
35
- `,1)[0],d=!u.trim(),m=0;if(this.options.pedantic?(m=2,h=u.trimStart()):d?m=e[1].length+1:(m=u.search(this.rules.other.nonSpaceChar),m=m>4?1:m,h=u.slice(m),m+=e[1].length),d&&this.rules.other.blankLine.test(f)&&(c+=f+`
36
- `,i=i.substring(f.length+1),a=!0),!a){let p=this.rules.other.nextBulletRegex(m),x=this.rules.other.hrRegex(m),S=this.rules.other.fencesBeginRegex(m),g=this.rules.other.headingBeginRegex(m),v=this.rules.other.htmlBeginRegex(m),C=this.rules.other.blockquoteBeginRegex(m);for(;i;){let T=i.split(`
37
- `,1)[0],w;if(f=T,this.options.pedantic?(f=f.replace(this.rules.other.listReplaceNesting," "),w=f):w=f.replace(this.rules.other.tabCharGlobal," "),S.test(f)||g.test(f)||v.test(f)||C.test(f)||p.test(f)||x.test(f))break;if(w.search(this.rules.other.nonSpaceChar)>=m||!f.trim())h+=`
38
- `+w.slice(m);else{if(d||u.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||S.test(u)||g.test(u)||x.test(u))break;h+=`
39
- `+f}d=!f.trim(),c+=T+`
40
- `,i=i.substring(T.length+1),u=w.slice(m)}}r.loose||(o?r.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(o=!0)),r.items.push({type:"list_item",raw:c,task:!!this.options.gfm&&this.rules.other.listIsTask.test(h),loose:!1,text:h,tokens:[]}),r.raw+=c}let l=r.items.at(-1);if(l)l.raw=l.raw.trimEnd(),l.text=l.text.trimEnd();else return;r.raw=r.raw.trimEnd();for(let a of r.items){this.lexer.state.top=!1,a.tokens=this.lexer.blockTokens(a.text,[]);let c=a.tokens[0];if(a.task&&(c?.type==="text"||c?.type==="paragraph")){a.text=a.text.replace(this.rules.other.listReplaceTask,""),c.raw=c.raw.replace(this.rules.other.listReplaceTask,""),c.text=c.text.replace(this.rules.other.listReplaceTask,"");for(let u=this.lexer.inlineQueue.length-1;u>=0;u--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[u].src)){this.lexer.inlineQueue[u].src=this.lexer.inlineQueue[u].src.replace(this.rules.other.listReplaceTask,"");break}let h=this.rules.other.listTaskCheckbox.exec(a.raw);if(h){let u={type:"checkbox",raw:h[0]+" ",checked:h[0]!=="[ ]"};a.checked=u.checked,r.loose?a.tokens[0]&&["paragraph","text"].includes(a.tokens[0].type)&&"tokens"in a.tokens[0]&&a.tokens[0].tokens?(a.tokens[0].raw=u.raw+a.tokens[0].raw,a.tokens[0].text=u.raw+a.tokens[0].text,a.tokens[0].tokens.unshift(u)):a.tokens.unshift({type:"paragraph",raw:u.raw,text:u.raw,tokens:[u]}):a.tokens.unshift(u)}}else a.task&&(a.task=!1);if(!r.loose){let h=a.tokens.filter(f=>f.type==="space"),u=h.length>0&&h.some(f=>this.rules.other.anyLine.test(f.raw));r.loose=u}}if(r.loose)for(let a of r.items){a.loose=!0;for(let c of a.tokens)c.type==="text"&&(c.type="paragraph")}return r}}html(i){let e=this.rules.block.html.exec(i);if(e){let t=Pi(e[0]);return{type:"html",block:!0,raw:t,pre:e[1]==="pre"||e[1]==="script"||e[1]==="style",text:t}}}def(i){let e=this.rules.block.def.exec(i);if(e){let t=e[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),s=e[2]?e[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",r=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):e[3];return{type:"def",tag:t,raw:me(e[0],`
41
- `),href:s,title:r}}}table(i){let e=this.rules.block.table.exec(i);if(!e||!this.rules.other.tableDelimiter.test(e[2]))return;let t=Mi(e[1]),s=e[2].replace(this.rules.other.tableAlignChars,"").split("|"),r=e[3]?.trim()?e[3].replace(this.rules.other.tableRowBlankLine,"").split(`
42
- `):[],n={type:"table",raw:me(e[0],`
43
- `),header:[],align:[],rows:[]};if(t.length===s.length){for(let o of s)this.rules.other.tableAlignRight.test(o)?n.align.push("right"):this.rules.other.tableAlignCenter.test(o)?n.align.push("center"):this.rules.other.tableAlignLeft.test(o)?n.align.push("left"):n.align.push(null);for(let o=0;o<t.length;o++)n.header.push({text:t[o],tokens:this.lexer.inline(t[o]),header:!0,align:n.align[o]});for(let o of r)n.rows.push(Mi(o,n.header.length).map((l,a)=>({text:l,tokens:this.lexer.inline(l),header:!1,align:n.align[a]})));return n}}lheading(i){let e=this.rules.block.lheading.exec(i);if(e){let t=e[1].trim();return{type:"heading",raw:me(e[0],`
44
- `),depth:e[2].charAt(0)==="="?1:2,text:t,tokens:this.lexer.inline(t)}}}paragraph(i){let e=this.rules.block.paragraph.exec(i);if(e){let t=e[1].charAt(e[1].length-1)===`
45
- `?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:t,tokens:this.lexer.inline(t)}}}text(i){let e=this.rules.block.text.exec(i);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(i){let e=this.rules.inline.escape.exec(i);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(i){let e=this.rules.inline.tag.exec(i);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(i){let e=this.rules.inline.link.exec(i);if(e){let t=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(t)){if(!this.rules.other.endAngleBracket.test(t))return;let n=me(t.slice(0,-1),"\\");if((t.length-n.length)%2===0)return}else{let n=Co(e[2],"()");if(n===-2)return;if(n>-1){let o=(e[0].indexOf("!")===0?5:4)+e[1].length+n;e[2]=e[2].substring(0,n),e[0]=e[0].substring(0,o).trim(),e[3]=""}}let s=e[2],r="";if(this.options.pedantic){let n=this.rules.other.pedanticHrefTitle.exec(s);n&&(s=n[1],r=n[3])}else r=e[3]?e[3].slice(1,-1):"";return s=s.trim(),this.rules.other.startAngleBracket.test(s)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(t)?s=s.slice(1):s=s.slice(1,-1)),$i(e,{href:s&&s.replace(this.rules.inline.anyPunctuation,"$1"),title:r&&r.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(i,e){let t;if((t=this.rules.inline.reflink.exec(i))||(t=this.rules.inline.nolink.exec(i))){let s=(t[2]||t[1]).replace(this.rules.other.multipleSpaceGlobal," "),r=e[s.toLowerCase()];if(!r){let n=t[0].charAt(0);return{type:"text",raw:n,text:n}}return $i(t,r,t[0],this.lexer,this.rules)}}emStrong(i,e,t=""){let s=this.rules.inline.emStrongLDelim.exec(i);if(!(!s||!s[1]&&!s[2]&&!s[3]&&!s[4]||s[4]&&t.match(this.rules.other.unicodeAlphaNumeric))&&(!(s[1]||s[3])||!t||this.rules.inline.punctuation.exec(t))){let r=[...s[0]].length-1,n,o,l=r,a=0,c=s[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,e=e.slice(-1*i.length+r);(s=c.exec(e))!==null;){if(n=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!n)continue;if(o=[...n].length,s[3]||s[4]){l+=o;continue}else if((s[5]||s[6])&&r%3&&!((r+o)%3)){a+=o;continue}if(l-=o,l>0)continue;o=Math.min(o,o+l+a);let h=[...s[0]][0].length,u=i.slice(0,r+s.index+h+o);if(Math.min(r,o)%2){let d=u.slice(1,-1);return{type:"em",raw:u,text:d,tokens:this.lexer.inlineTokens(d)}}let f=u.slice(2,-2);return{type:"strong",raw:u,text:f,tokens:this.lexer.inlineTokens(f)}}}}codespan(i){let e=this.rules.inline.code.exec(i);if(e){let t=e[2].replace(this.rules.other.newLineCharGlobal," "),s=this.rules.other.nonSpaceChar.test(t),r=this.rules.other.startingSpaceChar.test(t)&&this.rules.other.endingSpaceChar.test(t);return s&&r&&(t=t.substring(1,t.length-1)),{type:"codespan",raw:e[0],text:t}}}br(i){let e=this.rules.inline.br.exec(i);if(e)return{type:"br",raw:e[0]}}del(i,e,t=""){let s=this.rules.inline.delLDelim.exec(i);if(s&&(!s[1]||!t||this.rules.inline.punctuation.exec(t))){let r=[...s[0]].length-1,n,o,l=r,a=this.rules.inline.delRDelim;for(a.lastIndex=0,e=e.slice(-1*i.length+r);(s=a.exec(e))!==null;){if(n=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!n||(o=[...n].length,o!==r))continue;if(s[3]||s[4]){l+=o;continue}if(l-=o,l>0)continue;o=Math.min(o,o+l);let c=[...s[0]][0].length,h=i.slice(0,r+s.index+c+o),u=h.slice(r,-r);return{type:"del",raw:h,text:u,tokens:this.lexer.inlineTokens(u)}}}}autolink(i){let e=this.rules.inline.autolink.exec(i);if(e){let t,s;return e[2]==="@"?(t=e[1],s="mailto:"+t):(t=e[1],s=t),{type:"link",raw:e[0],text:t,href:s,tokens:[{type:"text",raw:t,text:t}]}}}url(i){let e;if(e=this.rules.inline.url.exec(i)){let t,s;if(e[2]==="@")t=e[0],s="mailto:"+t;else{let r;do r=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(r!==e[0]);t=e[0],e[1]==="www."?s="http://"+e[0]:s=e[0]}return{type:"link",raw:e[0],text:t,href:s,tokens:[{type:"text",raw:t,text:t}]}}}inlineText(i){let e=this.rules.inline.text.exec(i);if(e){let t=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:t}}}},Z=class ds{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||ke,this.options.tokenizer=this.options.tokenizer||new Me,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 t={other:V,block:wt.normal,inline:ze.normal};this.options.pedantic?(t.block=wt.pedantic,t.inline=ze.pedantic):this.options.gfm&&(t.block=wt.gfm,this.options.breaks?t.inline=ze.breaks:t.inline=ze.gfm),this.tokenizer.rules=t}static get rules(){return{block:wt,inline:ze}}static lex(e,t){return new ds(t).lex(e)}static lexInline(e,t){return new ds(t).inlineTokens(e)}lex(e){e=e.replace(V.carriageReturn,`
46
- `),this.blockTokens(e,this.tokens);for(let t=0;t<this.inlineQueue.length;t++){let s=this.inlineQueue[t];this.inlineTokens(s.src,s.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],s=!1){this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(V.tabCharGlobal," ").replace(V.spaceLine,""));let r=1/0;for(;e;){if(e.length<r)r=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}let n;if(this.options.extensions?.block?.some(l=>(n=l.call({lexer:this},e,t))?(e=e.substring(n.raw.length),t.push(n),!0):!1))continue;if(n=this.tokenizer.space(e)){e=e.substring(n.raw.length);let l=t.at(-1);n.raw.length===1&&l!==void 0?l.raw+=`
47
- `:t.push(n);continue}if(n=this.tokenizer.code(e)){e=e.substring(n.raw.length);let l=t.at(-1);l?.type==="paragraph"||l?.type==="text"?(l.raw+=(l.raw.endsWith(`
48
- `)?"":`
49
- `)+n.raw,l.text+=`
50
- `+n.text,this.inlineQueue.at(-1).src=l.text):t.push(n);continue}if(n=this.tokenizer.fences(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.heading(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.hr(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.blockquote(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.list(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.html(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.def(e)){e=e.substring(n.raw.length);let l=t.at(-1);l?.type==="paragraph"||l?.type==="text"?(l.raw+=(l.raw.endsWith(`
51
- `)?"":`
52
- `)+n.raw,l.text+=`
53
- `+n.raw,this.inlineQueue.at(-1).src=l.text):this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title},t.push(n));continue}if(n=this.tokenizer.table(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.lheading(e)){e=e.substring(n.raw.length),t.push(n);continue}let o=e;if(this.options.extensions?.startBlock){let l=1/0,a=e.slice(1),c;this.options.extensions.startBlock.forEach(h=>{c=h.call({lexer:this},a),typeof c=="number"&&c>=0&&(l=Math.min(l,c))}),l<1/0&&l>=0&&(o=e.substring(0,l+1))}if(this.state.top&&(n=this.tokenizer.paragraph(o))){let l=t.at(-1);s&&l?.type==="paragraph"?(l.raw+=(l.raw.endsWith(`
54
- `)?"":`
55
- `)+n.raw,l.text+=`
56
- `+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=l.text):t.push(n),s=o.length!==e.length,e=e.substring(n.raw.length);continue}if(n=this.tokenizer.text(e)){e=e.substring(n.raw.length);let l=t.at(-1);l?.type==="text"?(l.raw+=(l.raw.endsWith(`
57
- `)?"":`
58
- `)+n.raw,l.text+=`
59
- `+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=l.text):t.push(n);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let s=e,r=null;if(this.tokens.links){let c=Object.keys(this.tokens.links);if(c.length>0)for(;(r=this.tokenizer.rules.inline.reflinkSearch.exec(s))!==null;)c.includes(r[0].slice(r[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,r.index)+"["+"a".repeat(r[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(r=this.tokenizer.rules.inline.anyPunctuation.exec(s))!==null;)s=s.slice(0,r.index)+"++"+s.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let n;for(;(r=this.tokenizer.rules.inline.blockSkip.exec(s))!==null;)n=r[2]?r[2].length:0,s=s.slice(0,r.index+n)+"["+"a".repeat(r[0].length-n-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);s=this.options.hooks?.emStrongMask?.call({lexer:this},s)??s;let o=!1,l="",a=1/0;for(;e;){if(e.length<a)a=e.length;else{this.infiniteLoopError(e.charCodeAt(0));break}o||(l=""),o=!1;let c;if(this.options.extensions?.inline?.some(u=>(c=u.call({lexer:this},e,t))?(e=e.substring(c.raw.length),t.push(c),!0):!1))continue;if(c=this.tokenizer.escape(e)){e=e.substring(c.raw.length),t.push(c);continue}if(c=this.tokenizer.tag(e)){e=e.substring(c.raw.length),t.push(c);continue}if(c=this.tokenizer.link(e)){e=e.substring(c.raw.length),t.push(c);continue}if(c=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(c.raw.length);let u=t.at(-1);c.type==="text"&&u?.type==="text"?(u.raw+=c.raw,u.text+=c.text):t.push(c);continue}if(c=this.tokenizer.emStrong(e,s,l)){e=e.substring(c.raw.length),t.push(c);continue}if(c=this.tokenizer.codespan(e)){e=e.substring(c.raw.length),t.push(c);continue}if(c=this.tokenizer.br(e)){e=e.substring(c.raw.length),t.push(c);continue}if(c=this.tokenizer.del(e,s,l)){e=e.substring(c.raw.length),t.push(c);continue}if(c=this.tokenizer.autolink(e)){e=e.substring(c.raw.length),t.push(c);continue}if(!this.state.inLink&&(c=this.tokenizer.url(e))){e=e.substring(c.raw.length),t.push(c);continue}let h=e;if(this.options.extensions?.startInline){let u=1/0,f=e.slice(1),d;this.options.extensions.startInline.forEach(m=>{d=m.call({lexer:this},f),typeof d=="number"&&d>=0&&(u=Math.min(u,d))}),u<1/0&&u>=0&&(h=e.substring(0,u+1))}if(c=this.tokenizer.inlineText(h)){e=e.substring(c.raw.length),c.raw.slice(-1)!=="_"&&(l=c.raw.slice(-1)),o=!0;let u=t.at(-1);u?.type==="text"?(u.raw+=c.raw,u.text+=c.text):t.push(c);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t="Infinite loop on byte: "+e;if(this.options.silent)console.error(t);else throw new Error(t)}},kt=class{options;parser;constructor(i){this.options=i||ke}space(i){return""}code({text:i,lang:e,escaped:t}){let s=(e||"").match(V.notSpaceStart)?.[0],r=i.replace(V.endingNewline,"")+`
60
- `;return s?'<pre><code class="language-'+re(s)+'">'+(t?r:re(r,!0))+`</code></pre>
61
- `:"<pre><code>"+(t?r:re(r,!0))+`</code></pre>
62
- `}blockquote({tokens:i}){return`<blockquote>
63
- ${this.parser.parse(i)}</blockquote>
64
- `}html({text:i}){return i}def(i){return""}heading({tokens:i,depth:e}){return`<h${e}>${this.parser.parseInline(i)}</h${e}>
65
- `}hr(i){return`<hr>
66
- `}list(i){let e=i.ordered,t=i.start,s="";for(let o=0;o<i.items.length;o++){let l=i.items[o];s+=this.listitem(l)}let r=e?"ol":"ul",n=e&&t!==1?' start="'+t+'"':"";return"<"+r+n+`>
67
- `+s+"</"+r+`>
68
- `}listitem(i){return`<li>${this.parser.parse(i.tokens)}</li>
69
- `}checkbox({checked:i}){return"<input "+(i?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:i}){return`<p>${this.parser.parseInline(i)}</p>
70
- `}table(i){let e="",t="";for(let r=0;r<i.header.length;r++)t+=this.tablecell(i.header[r]);e+=this.tablerow({text:t});let s="";for(let r=0;r<i.rows.length;r++){let n=i.rows[r];t="";for(let o=0;o<n.length;o++)t+=this.tablecell(n[o]);s+=this.tablerow({text:t})}return s&&(s=`<tbody>${s}</tbody>`),`<table>
71
- <thead>
72
- `+e+`</thead>
73
- `+s+`</table>
74
- `}tablerow({text:i}){return`<tr>
75
- ${i}</tr>
76
- `}tablecell(i){let e=this.parser.parseInline(i.tokens),t=i.header?"th":"td";return(i.align?`<${t} align="${i.align}">`:`<${t}>`)+e+`</${t}>
77
- `}strong({tokens:i}){return`<strong>${this.parser.parseInline(i)}</strong>`}em({tokens:i}){return`<em>${this.parser.parseInline(i)}</em>`}codespan({text:i}){return`<code>${re(i,!0)}</code>`}br(i){return"<br>"}del({tokens:i}){return`<del>${this.parser.parseInline(i)}</del>`}link({href:i,title:e,tokens:t}){let s=this.parser.parseInline(t),r=Ai(i);if(r===null)return s;i=r;let n='<a href="'+i+'"';return e&&(n+=' title="'+re(e)+'"'),n+=">"+s+"</a>",n}image({href:i,title:e,text:t,tokens:s}){s&&(t=this.parser.parseInline(s,this.parser.textRenderer));let r=Ai(i);if(r===null)return re(t);i=r;let n=`<img src="${i}" alt="${re(t)}"`;return e&&(n+=` title="${re(e)}"`),n+=">",n}text(i){return"tokens"in i&&i.tokens?this.parser.parseInline(i.tokens):"escaped"in i&&i.escaped?i.text:re(i.text)}},Ss=class{strong({text:i}){return i}em({text:i}){return i}codespan({text:i}){return i}del({text:i}){return i}html({text:i}){return i}text({text:i}){return i}link({text:i}){return""+i}image({text:i}){return""+i}br(){return""}checkbox({raw:i}){return i}},J=class ps{options;renderer;textRenderer;constructor(e){this.options=e||ke,this.options.renderer=this.options.renderer||new kt,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Ss}static parse(e,t){return new ps(t).parse(e)}static parseInline(e,t){return new ps(t).parseInline(e)}parse(e){this.renderer.parser=this;let t="";for(let s=0;s<e.length;s++){let r=e[s];if(this.options.extensions?.renderers?.[r.type]){let o=r,l=this.options.extensions.renderers[o.type].call({parser:this},o);if(l!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(o.type)){t+=l||"";continue}}let n=r;switch(n.type){case"space":{t+=this.renderer.space(n);break}case"hr":{t+=this.renderer.hr(n);break}case"heading":{t+=this.renderer.heading(n);break}case"code":{t+=this.renderer.code(n);break}case"table":{t+=this.renderer.table(n);break}case"blockquote":{t+=this.renderer.blockquote(n);break}case"list":{t+=this.renderer.list(n);break}case"checkbox":{t+=this.renderer.checkbox(n);break}case"html":{t+=this.renderer.html(n);break}case"def":{t+=this.renderer.def(n);break}case"paragraph":{t+=this.renderer.paragraph(n);break}case"text":{t+=this.renderer.text(n);break}default:{let o='Token with "'+n.type+'" type was not found.';if(this.options.silent)return console.error(o),"";throw new Error(o)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let s="";for(let r=0;r<e.length;r++){let n=e[r];if(this.options.extensions?.renderers?.[n.type]){let l=this.options.extensions.renderers[n.type].call({parser:this},n);if(l!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(n.type)){s+=l||"";continue}}let o=n;switch(o.type){case"escape":{s+=t.text(o);break}case"html":{s+=t.html(o);break}case"link":{s+=t.link(o);break}case"image":{s+=t.image(o);break}case"checkbox":{s+=t.checkbox(o);break}case"strong":{s+=t.strong(o);break}case"em":{s+=t.em(o);break}case"codespan":{s+=t.codespan(o);break}case"br":{s+=t.br(o);break}case"del":{s+=t.del(o);break}case"text":{s+=t.text(o);break}default:{let l='Token with "'+o.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return s}},Ge=class{options;block;constructor(i){this.options=i||ke}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(i){return i}postprocess(i){return i}processAllTokens(i){return i}emStrongMask(i){return i}provideLexer(i=this.block){return i?Z.lex:Z.lexInline}provideParser(i=this.block){return i?J.parse:J.parseInline}},vt=class{defaults=ms();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=J;Renderer=kt;TextRenderer=Ss;Lexer=Z;Tokenizer=Me;Hooks=Ge;constructor(...i){this.use(...i)}walkTokens(i,e){let t=[];for(let s of i)switch(t=t.concat(e.call(this,s)),s.type){case"table":{let r=s;for(let n of r.header)t=t.concat(this.walkTokens(n.tokens,e));for(let n of r.rows)for(let o of n)t=t.concat(this.walkTokens(o.tokens,e));break}case"list":{let r=s;t=t.concat(this.walkTokens(r.items,e));break}default:{let r=s;this.defaults.extensions?.childTokens?.[r.type]?this.defaults.extensions.childTokens[r.type].forEach(n=>{let o=r[n].flat(1/0);t=t.concat(this.walkTokens(o,e))}):r.tokens&&(t=t.concat(this.walkTokens(r.tokens,e)))}}return t}use(...i){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return i.forEach(t=>{let s={...t};if(s.async=this.defaults.async||s.async||!1,t.extensions&&(t.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if("renderer"in r){let n=e.renderers[r.name];n?e.renderers[r.name]=function(...o){let l=r.renderer.apply(this,o);return l===!1&&(l=n.apply(this,o)),l}:e.renderers[r.name]=r.renderer}if("tokenizer"in r){if(!r.level||r.level!=="block"&&r.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let n=e[r.level];n?n.unshift(r.tokenizer):e[r.level]=[r.tokenizer],r.start&&(r.level==="block"?e.startBlock?e.startBlock.push(r.start):e.startBlock=[r.start]:r.level==="inline"&&(e.startInline?e.startInline.push(r.start):e.startInline=[r.start]))}"childTokens"in r&&r.childTokens&&(e.childTokens[r.name]=r.childTokens)}),s.extensions=e),t.renderer){let r=this.defaults.renderer||new kt(this.defaults);for(let n in t.renderer){if(!(n in r))throw new Error(`renderer '${n}' does not exist`);if(["options","parser"].includes(n))continue;let o=n,l=t.renderer[o],a=r[o];r[o]=(...c)=>{let h=l.apply(r,c);return h===!1&&(h=a.apply(r,c)),h||""}}s.renderer=r}if(t.tokenizer){let r=this.defaults.tokenizer||new Me(this.defaults);for(let n in t.tokenizer){if(!(n in r))throw new Error(`tokenizer '${n}' does not exist`);if(["options","rules","lexer"].includes(n))continue;let o=n,l=t.tokenizer[o],a=r[o];r[o]=(...c)=>{let h=l.apply(r,c);return h===!1&&(h=a.apply(r,c)),h}}s.tokenizer=r}if(t.hooks){let r=this.defaults.hooks||new Ge;for(let n in t.hooks){if(!(n in r))throw new Error(`hook '${n}' does not exist`);if(["options","block"].includes(n))continue;let o=n,l=t.hooks[o],a=r[o];Ge.passThroughHooks.has(n)?r[o]=c=>{if(this.defaults.async&&Ge.passThroughHooksRespectAsync.has(n))return(async()=>{let u=await l.call(r,c);return a.call(r,u)})();let h=l.call(r,c);return a.call(r,h)}:r[o]=(...c)=>{if(this.defaults.async)return(async()=>{let u=await l.apply(r,c);return u===!1&&(u=await a.apply(r,c)),u})();let h=l.apply(r,c);return h===!1&&(h=a.apply(r,c)),h}}s.hooks=r}if(t.walkTokens){let r=this.defaults.walkTokens,n=t.walkTokens;s.walkTokens=function(o){let l=[];return l.push(n.call(this,o)),r&&(l=l.concat(r.call(this,o))),l}}this.defaults={...this.defaults,...s}}),this}setOptions(i){return this.defaults={...this.defaults,...i},this}lexer(i,e){return Z.lex(i,e??this.defaults)}parser(i,e){return J.parse(i,e??this.defaults)}parseMarkdown(i){return(e,t)=>{let s={...t},r={...this.defaults,...s},n=this.onError(!!r.silent,!!r.async);if(this.defaults.async===!0&&s.async===!1)return n(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 e>"u"||e===null)return n(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return n(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(r.hooks&&(r.hooks.options=r,r.hooks.block=i),r.async)return(async()=>{let o=r.hooks?await r.hooks.preprocess(e):e,l=await(r.hooks?await r.hooks.provideLexer(i):i?Z.lex:Z.lexInline)(o,r),a=r.hooks?await r.hooks.processAllTokens(l):l;r.walkTokens&&await Promise.all(this.walkTokens(a,r.walkTokens));let c=await(r.hooks?await r.hooks.provideParser(i):i?J.parse:J.parseInline)(a,r);return r.hooks?await r.hooks.postprocess(c):c})().catch(n);try{r.hooks&&(e=r.hooks.preprocess(e));let o=(r.hooks?r.hooks.provideLexer(i):i?Z.lex:Z.lexInline)(e,r);r.hooks&&(o=r.hooks.processAllTokens(o)),r.walkTokens&&this.walkTokens(o,r.walkTokens);let l=(r.hooks?r.hooks.provideParser(i):i?J.parse:J.parseInline)(o,r);return r.hooks&&(l=r.hooks.postprocess(l)),l}catch(o){return n(o)}}}onError(i,e){return t=>{if(t.message+=`
78
- Please report this to https://github.com/markedjs/marked.`,i){let s="<p>An error occurred:</p><pre>"+re(t.message+"",!0)+"</pre>";return e?Promise.resolve(s):s}if(e)return Promise.reject(t);throw t}}},ye=new vt;function O(i,e){return ye.parse(i,e)}O.options=O.setOptions=function(i){return ye.setOptions(i),O.defaults=ye.defaults,Ei(O.defaults),O};O.getDefaults=ms;O.defaults=ke;O.use=function(...i){return ye.use(...i),O.defaults=ye.defaults,Ei(O.defaults),O};O.walkTokens=function(i,e){return ye.walkTokens(i,e)};O.parseInline=ye.parseInline;O.Parser=J;O.parser=J.parse;O.Renderer=kt;O.TextRenderer=Ss;O.Lexer=Z;O.lexer=Z.lex;O.Tokenizer=Me;O.Hooks=Ge;O.parse=O;var Ta=O.options,Ra=O.setOptions,Ia=O.use,Aa=O.walkTokens,Ma=O.parseInline;var Pa=J.parse,$a=Z.lex;import{spawn as Lo}from"child_process";import{readdirSync as To,statSync as Hi}from"fs";import{homedir as Ui}from"os";import{basename as vs,dirname as Tt,join as ge}from"path";function qi(i,e){let t=i.toLowerCase(),s=e.toLowerCase(),r=h=>{if(h.length===0)return{matches:!0,score:0};if(h.length>s.length)return{matches:!1,score:0};let u=0,f=0,d=-1,m=0;for(let p=0;p<s.length&&u<h.length;p++)if(s[p]===h[u]){let x=p===0||/[\s\-_./:]/.test(s[p-1]);d===p-1?(m++,f-=m*5):(m=0,d>=0&&(f+=(p-d-1)*2)),x&&(f-=10),f+=p*.1,d=p,u++}return u<h.length?{matches:!1,score:0}:(h===s&&(f-=100),{matches:!0,score:f})},n=r(t);if(n.matches)return n;let o=t.match(/^(?<letters>[a-z]+)(?<digits>[0-9]+)$/),l=t.match(/^(?<digits>[0-9]+)(?<letters>[a-z]+)$/),a=o?`${o.groups?.digits??""}${o.groups?.letters??""}`:l?`${l.groups?.letters??""}${l.groups?.digits??""}`:"";if(!a)return n;let c=r(a);return c.matches?{matches:!0,score:c.score+5}:n}function Lt(i,e,t){if(!e.trim())return i;let s=e.trim().split(/[\s/]+/).filter(n=>n.length>0);if(s.length===0)return i;let r=[];for(let n of i){let o=t(n),l=0,a=!0;for(let c of s){let h=qi(c,o);if(h.matches)l+=h.score;else{a=!1;break}}a&&r.push({item:n,totalScore:l})}return r.sort((n,o)=>n.totalScore-o.totalScore),r.map(n=>n.item)}var Qi=new Set([" "," ",'"',"'","="]);function Ce(i){return i.replace(/\\/g,"/")}function Ro(i){return i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Io(i){let e=Ce(i);if(!e.includes("/"))return e;let t=e.endsWith("/"),s=e.replace(/^\/+|\/+$/g,"");if(!s)return e;let r="[\\\\/]",n=s.split("/").filter(Boolean).map(l=>Ro(l));if(n.length===0)return e;let o=n.join(r);return t&&(o+=r),o}function zi(i){for(let e=i.length-1;e>=0;e-=1)if(Qi.has(i[e]??""))return e;return-1}function Ao(i){let e=!1,t=-1;for(let s=0;s<i.length;s+=1)i[s]==='"'&&(e=!e,e&&(t=s));return e?t:null}function Gi(i,e){return e===0||Qi.has(i[e-1]??"")}function ji(i){let e=Ao(i);return e===null?null:e>0&&i[e-1]==="@"?Gi(i,e-1)?i.slice(e-1):null:Gi(i,e)?i.slice(e):null}function Yi(i){return i.startsWith('@"')?{rawPrefix:i.slice(2),isAtPrefix:!0,isQuotedPrefix:!0}:i.startsWith('"')?{rawPrefix:i.slice(1),isAtPrefix:!1,isQuotedPrefix:!0}:i.startsWith("@")?{rawPrefix:i.slice(1),isAtPrefix:!0,isQuotedPrefix:!1}:{rawPrefix:i,isAtPrefix:!1,isQuotedPrefix:!1}}function Xi(i,e){let t=e.isQuotedPrefix||i.includes(" "),s=e.isAtPrefix?"@":"";return t?`${`${s}"`}${i}"`:`${s}${i}`}async function Mo(i,e,t,s,r){let n=["--base-directory",i,"--max-results",String(s),"--type","f","--type","d","--follow","--hidden","--exclude",".git","--exclude",".git/*","--exclude",".git/**"];return Ce(t).includes("/")&&n.push("--full-path"),t&&n.push(Io(t)),await new Promise(o=>{if(r.aborted){o([]);return}let l=Lo(e,n,{stdio:["ignore","pipe","pipe"]}),a="",c=!1,h=f=>{c||(c=!0,r.removeEventListener("abort",u),o(f))},u=()=>{l.exitCode===null&&l.kill("SIGKILL")};r.addEventListener("abort",u,{once:!0}),l.stdout.setEncoding("utf-8"),l.stdout.on("data",f=>{a+=f}),l.on("error",()=>{h([])}),l.on("close",f=>{if(r.aborted||f!==0||!a){h([]);return}let d=a.trim().split(`
79
- `).filter(Boolean),m=[];for(let p of d){let x=Ce(p),S=x.endsWith("/"),g=S?x.slice(0,-1):x;g===".git"||g.startsWith(".git/")||g.includes("/.git/")||m.push({path:x,isDirectory:S})}h(m)})})}var Ls=class{commands;basePath;fdPath;constructor(e=[],t,s=null){this.commands=e,this.basePath=t,this.fdPath=s}async getSuggestions(e,t,s,r){let o=(e[t]||"").slice(0,s),l=this.extractAtPrefix(o);if(l){let{rawPrefix:h,isQuotedPrefix:u}=Yi(l),f=await this.getFuzzyFileSuggestions(h,{isQuotedPrefix:u,signal:r.signal});return f.length===0?null:{items:f,prefix:l}}if(!r.force&&o.startsWith("/")){let h=o.indexOf(" ");if(h===-1){let p=o.slice(1),x=this.commands.map(g=>{let v="name"in g?g.name:g.value,C="argumentHint"in g&&g.argumentHint?g.argumentHint:void 0,T=g.description??"",w=C?T?`${C} \u2014 ${T}`:C:T;return{name:v,label:v,description:w||void 0}}),S=Lt(x,p,g=>g.name).map(g=>({value:g.name,label:g.label,...g.description&&{description:g.description}}));return S.length===0?null:{items:S,prefix:o}}let u=o.slice(1,h),f=o.slice(h+1),d=this.commands.find(p=>("name"in p?p.name:p.value)===u);if(!d||!("getArgumentCompletions"in d)||!d.getArgumentCompletions)return null;let m=await d.getArgumentCompletions(f);return!Array.isArray(m)||m.length===0?null:{items:m,prefix:f}}let a=this.extractPathPrefix(o,r.force??!1);if(a===null)return null;let c=this.getFileSuggestions(a);return c.length===0?null:{items:c,prefix:a}}applyCompletion(e,t,s,r,n){let o=e[t]||"",l=o.slice(0,s-n.length),a=o.slice(s),c=n.startsWith('"')||n.startsWith('@"'),h=a.startsWith('"'),u=r.value.endsWith('"'),f=c&&u&&h?a.slice(1):a;if(n.startsWith("/")&&l.trim()===""&&!n.slice(1).includes("/")){let C=`${l}/${r.value} ${f}`,T=[...e];return T[t]=C,{lines:T,cursorLine:t,cursorCol:l.length+r.value.length+2}}if(n.startsWith("@")){let C=r.label.endsWith("/"),T=C?"":" ",w=`${l+r.value}${T}${f}`,R=[...e];R[t]=w;let M=r.value.endsWith('"'),P=C&&M?r.value.length-1:r.value.length;return{lines:R,cursorLine:t,cursorCol:l.length+P+T.length}}let m=o.slice(0,s);if(m.includes("/")&&m.includes(" ")){let C=l+r.value+f,T=[...e];T[t]=C;let w=r.label.endsWith("/"),R=r.value.endsWith('"'),M=w&&R?r.value.length-1:r.value.length;return{lines:T,cursorLine:t,cursorCol:l.length+M}}let p=l+r.value+f,x=[...e];x[t]=p;let S=r.label.endsWith("/"),g=r.value.endsWith('"'),v=S&&g?r.value.length-1:r.value.length;return{lines:x,cursorLine:t,cursorCol:l.length+v}}extractAtPrefix(e){let t=ji(e);if(t?.startsWith('@"'))return t;let s=zi(e),r=s===-1?0:s+1;return e[r]==="@"?e.slice(r):null}extractPathPrefix(e,t=!1){let s=ji(e);if(s)return s;let r=zi(e),n=r===-1?e:e.slice(r+1);return t||n.includes("/")||n.startsWith(".")||n.startsWith("~/")||n===""&&e.endsWith(" ")?n:null}expandHomePath(e){if(e.startsWith("~/")){let t=ge(Ui(),e.slice(2));return e.endsWith("/")&&!t.endsWith("/")?`${t}/`:t}else if(e==="~")return Ui();return e}resolveScopedFuzzyQuery(e){let t=Ce(e),s=t.lastIndexOf("/");if(s===-1)return null;let r=t.slice(0,s+1),n=t.slice(s+1),o;r.startsWith("~/")?o=this.expandHomePath(r):r.startsWith("/")?o=r:o=ge(this.basePath,r);try{if(!Hi(o).isDirectory())return null}catch{return null}return{baseDir:o,query:n,displayBase:r}}scopedPathForDisplay(e,t){let s=Ce(t);return e==="/"?`/${s}`:`${Ce(e)}${s}`}getFileSuggestions(e){try{let t,s,{rawPrefix:r,isAtPrefix:n,isQuotedPrefix:o}=Yi(e),l=r;if(l.startsWith("~")&&(l=this.expandHomePath(l)),r===""||r==="./"||r==="../"||r==="~"||r==="~/"||r==="/"||n&&r==="")r.startsWith("~")||l.startsWith("/")?t=l:t=ge(this.basePath,l),s="";else if(r.endsWith("/"))r.startsWith("~")||l.startsWith("/")?t=l:t=ge(this.basePath,l),s="";else{let u=Tt(l),f=vs(l);r.startsWith("~")||l.startsWith("/")?t=u:t=ge(this.basePath,u),s=f}let c=To(t,{withFileTypes:!0}),h=[];for(let u of c){if(!u.name.toLowerCase().startsWith(s.toLowerCase()))continue;let f=u.isDirectory();if(!f&&u.isSymbolicLink())try{let g=ge(t,u.name);f=Hi(g).isDirectory()}catch{}let d,m=u.name,p=r;if(p.endsWith("/"))d=p+m;else if(p.includes("/")||p.includes("\\"))if(p.startsWith("~/")){let g=p.slice(2),v=Tt(g);d=`~/${v==="."?m:ge(v,m)}`}else if(p.startsWith("/")){let g=Tt(p);g==="/"?d=`/${m}`:d=`${g}/${m}`}else d=ge(Tt(p),m),p.startsWith("./")&&!d.startsWith("./")&&(d=`./${d}`);else p.startsWith("~")?d=`~/${m}`:d=m;d=Ce(d);let x=f?`${d}/`:d,S=Xi(x,{isDirectory:f,isAtPrefix:n,isQuotedPrefix:o});h.push({value:S,label:m+(f?"/":"")})}return h.sort((u,f)=>{let d=u.value.endsWith("/"),m=f.value.endsWith("/");return d&&!m?-1:!d&&m?1:u.label.localeCompare(f.label)}),h}catch{return[]}}scoreEntry(e,t,s){let n=vs(e).toLowerCase(),o=t.toLowerCase(),l=0;return n===o?l=100:n.startsWith(o)?l=80:n.includes(o)?l=50:e.toLowerCase().includes(o)&&(l=30),s&&l>0&&(l+=10),l}async getFuzzyFileSuggestions(e,t){if(!this.fdPath||t.signal.aborted)return[];try{let s=this.resolveScopedFuzzyQuery(e),r=s?.baseDir??this.basePath,n=s?.query??e,o=await Mo(r,this.fdPath,n,100,t.signal);if(t.signal.aborted)return[];let l=o.map(h=>({...h,score:n?this.scoreEntry(h.path,n,h.isDirectory):1})).filter(h=>h.score>0);l.sort((h,u)=>u.score-h.score);let a=l.slice(0,20),c=[];for(let{path:h,isDirectory:u}of a){let f=u?h.slice(0,-1):h,d=s?this.scopedPathForDisplay(s.displayBase,f):f,m=vs(f),p=u?`${d}/`:d,x=Xi(p,{isDirectory:u,isAtPrefix:!0,isQuotedPrefix:t.isQuotedPrefix});c.push({value:x,label:m+(u?"/":""),description:d})}return c}catch{return[]}}shouldTriggerFileCompletion(e,t,s){let n=(e[t]||"").slice(0,s);return!(n.trim().startsWith("/")&&!n.trim().includes(" "))}};var Ts=class{children=[];paddingX;paddingY;bgFn;cache;constructor(e=1,t=1,s){this.paddingX=e,this.paddingY=t,this.bgFn=s}addChild(e){this.children.push(e),this.invalidateCache()}removeChild(e){let t=this.children.indexOf(e);t!==-1&&(this.children.splice(t,1),this.invalidateCache())}clear(){this.children=[],this.invalidateCache()}setBgFn(e){this.bgFn=e}invalidateCache(){this.cache=void 0}matchCache(e,t,s){let r=this.cache;return!!r&&r.width===e&&r.bgSample===s&&r.childLines.length===t.length&&r.childLines.every((n,o)=>n===t[o])}invalidate(){this.invalidateCache();for(let e of this.children)e.invalidate?.()}render(e){if(this.children.length===0)return[];let t=Math.max(1,e-this.paddingX*2),s=" ".repeat(this.paddingX),r=[];for(let l of this.children){let a=l.render(t);for(let c of a)r.push(s+c)}if(r.length===0)return[];let n=this.bgFn?this.bgFn("test"):void 0;if(this.matchCache(e,r,n))return this.cache.lines;let o=[];for(let l=0;l<this.paddingY;l++)o.push(this.applyBg("",e));for(let l of r)o.push(this.applyBg(l,e));for(let l=0;l<this.paddingY;l++)o.push(this.applyBg("",e));return this.cache={childLines:r,width:e,bgSample:n,lines:o},o}applyBg(e,t){let s=y(e),r=Math.max(0,t-s),n=e+" ".repeat(r);return this.bgFn?pe(n,t,this.bgFn):n}};var Zi={"tui.editor.cursorUp":{defaultKeys:"up",description:"Move cursor up"},"tui.editor.cursorDown":{defaultKeys:"down",description:"Move cursor down"},"tui.editor.historyPrevious":{defaultKeys:[],description:"Select previous prompt history entry"},"tui.editor.historyNext":{defaultKeys:[],description:"Select next prompt history entry"},"tui.editor.cursorLeft":{defaultKeys:["left","ctrl+b"],description:"Move cursor left"},"tui.editor.cursorRight":{defaultKeys:["right","ctrl+f"],description:"Move cursor right"},"tui.editor.cursorWordLeft":{defaultKeys:["alt+left","ctrl+left","alt+b"],description:"Move cursor word left"},"tui.editor.cursorWordRight":{defaultKeys:["alt+right","ctrl+right","alt+f"],description:"Move cursor word right"},"tui.editor.cursorLineStart":{defaultKeys:["home","ctrl+home","ctrl+a"],description:"Move to line start"},"tui.editor.cursorLineEnd":{defaultKeys:["end","ctrl+end","ctrl+e"],description:"Move to line end"},"tui.editor.jumpForward":{defaultKeys:"ctrl+]",description:"Jump forward to character"},"tui.editor.jumpBackward":{defaultKeys:"ctrl+alt+]",description:"Jump backward to character"},"tui.editor.pageUp":{defaultKeys:["pageUp","ctrl+pageUp"],description:"Page up"},"tui.editor.pageDown":{defaultKeys:["pageDown","ctrl+pageDown"],description:"Page down"},"tui.editor.deleteCharBackward":{defaultKeys:"backspace",description:"Delete character backward"},"tui.editor.deleteCharForward":{defaultKeys:["delete","ctrl+d"],description:"Delete character forward"},"tui.editor.deleteWordBackward":{defaultKeys:["ctrl+w","alt+backspace"],description:"Delete word backward"},"tui.editor.deleteWordForward":{defaultKeys:["alt+d","alt+delete"],description:"Delete word forward"},"tui.editor.deleteToLineStart":{defaultKeys:"ctrl+u",description:"Delete to line start"},"tui.editor.deleteToLineEnd":{defaultKeys:"ctrl+k",description:"Delete to line end"},"tui.editor.yank":{defaultKeys:"ctrl+y",description:"Yank"},"tui.editor.yankPop":{defaultKeys:"alt+y",description:"Yank pop"},"tui.editor.undo":{defaultKeys:"ctrl+-",description:"Undo"},"tui.input.newLine":{defaultKeys:["shift+enter","ctrl+j"],description:"Insert newline"},"tui.input.submit":{defaultKeys:"enter",description:"Submit input"},"tui.input.tab":{defaultKeys:"tab",description:"Tab / autocomplete"},"tui.input.copy":{defaultKeys:"ctrl+c",description:"Copy selection"},"tui.select.up":{defaultKeys:"up",description:"Move selection up"},"tui.select.down":{defaultKeys:"down",description:"Move selection down"},"tui.select.pageUp":{defaultKeys:"pageUp",description:"Selection page up"},"tui.select.pageDown":{defaultKeys:"pageDown",description:"Selection page down"},"tui.select.confirm":{defaultKeys:"enter",description:"Confirm selection"},"tui.select.cancel":{defaultKeys:["escape","ctrl+c"],description:"Cancel selection"},"tui.altScreen.pageUp":{defaultKeys:"pageUp",description:"Scroll viewport up one page"},"tui.altScreen.pageDown":{defaultKeys:"pageDown",description:"Scroll viewport down one page"},"tui.altScreen.halfPageUp":{defaultKeys:[],description:"Scroll viewport up half a page"},"tui.altScreen.halfPageDown":{defaultKeys:[],description:"Scroll viewport down half a page"},"tui.altScreen.previousPrompt":{defaultKeys:"ctrl+shift+up",description:"Jump to previous semantic prompt"},"tui.altScreen.nextPrompt":{defaultKeys:"ctrl+shift+down",description:"Jump to next semantic prompt"},"tui.altScreen.top":{defaultKeys:"home",description:"Scroll viewport to top"},"tui.altScreen.bottom":{defaultKeys:"end",description:"Scroll viewport to bottom"}};function Rs(i){if(i===void 0)return[];let e=Array.isArray(i)?i:[i],t=new Set,s=[];for(let r of e)t.has(r)||(t.add(r),s.push(r));return s}var Rt=class{definitions;userBindings;keysById=new Map;conflicts=[];constructor(e,t={}){this.definitions=e,this.userBindings=t,this.rebuild()}rebuild(){this.keysById.clear(),this.conflicts=[];let e=new Map;for(let[t,s]of Object.entries(this.userBindings))if(t in this.definitions)for(let r of Rs(s)){let n=e.get(r)??new Set;n.add(t),e.set(r,n)}for(let[t,s]of e)s.size>1&&this.conflicts.push({key:t,keybindings:[...s]});for(let[t,s]of Object.entries(this.definitions)){let r=this.userBindings[t],n=Rs(r===void 0?s.defaultKeys:r);this.keysById.set(t,n)}}matches(e,t){let s=this.keysById.get(t)??[];for(let r of s)if(te(e,r))return!0;return!1}getKeys(e){return[...this.keysById.get(e)??[]]}getDefinition(e){return this.definitions[e]}getConflicts(){return this.conflicts.map(e=>({...e,keybindings:[...e.keybindings]}))}setUserBindings(e){this.userBindings=e,this.rebuild()}getUserBindings(){return{...this.userBindings}}getResolvedBindings(){let e={};for(let t of Object.keys(this.definitions)){let s=this.keysById.get(t)??[];e[t]=s.length===1?s[0]:[...s]}return e}},Is=null;function ee(){return Is||(Is=new Rt(Zi)),Is}var $e=class{ring=[];push(e,t){if(e)if(t.accumulate&&this.ring.length>0){let s=this.ring.pop();this.ring.push(t.prepend?e+s:s+e)}else this.ring.push(e)}peek(){return this.ring.length>0?this.ring[this.ring.length-1]:void 0}rotate(){if(this.ring.length>1){let e=this.ring.pop();this.ring.unshift(e)}}get length(){return this.ring.length}};var Ee=class{stack=[];push(e){this.stack.push(structuredClone(e))}pop(){return this.stack.pop()}clear(){this.stack.length=0}get length(){return this.stack.length}};var Ji=Re();function It(i,e,t){if(e<=0)return 0;let s=i.slice(0,e),r=t?.segment,n=t?.isAtomicSegment,o=r?[...r(s)]:[...Ji.segment(s)],l=e;for(;o.length>0&&!n?.(o[o.length-1]?.segment||"")&&U(o[o.length-1]?.segment||"");)l-=o.pop()?.segment.length||0;if(o.length===0)return l;let a=o[o.length-1];if(n?.(a.segment))l-=a.segment.length;else if(a.isWordLike){let c=a.segment,h=[...c.matchAll(new RegExp(os,"g"))];if(h.length<=0)l-=c.length;else{let u=h[h.length-1];l-=c.length-(u.index+u[0].length)}}else for(;o.length>0&&!n?.(o[o.length-1]?.segment||"")&&!o[o.length-1]?.isWordLike&&!U(o[o.length-1]?.segment||"");)l-=o.pop()?.segment.length||0;return l}function At(i,e,t){if(e>=i.length)return i.length;let s=i.slice(e),r=t?.segment,n=t?.isAtomicSegment,l=(r?r(s):Ji.segment(s))[Symbol.iterator](),a=l.next(),c=e;for(;!a.done&&!n?.(a.value.segment)&&U(a.value.segment);)c+=a.value.segment.length,a=l.next();if(a.done)return c;if(n?.(a.value.segment))c+=a.value.segment.length;else if(a.value.isWordLike)c+=os.exec(a.value.segment)?.index??a.value.segment.length;else for(;!a.done&&!n?.(a.value.segment)&&!a.value.isWordLike&&!U(a.value.segment);)c+=a.value.segment.length,a=l.next();return c}var er=32,tr=2,$o=10,Eo=i=>i.replace(/[\r\n]+/g," ").trim(),Oo=(i,e,t)=>Math.max(e,Math.min(i,t)),Ye=class{items=[];filteredItems=[];selectedIndex=0;maxVisible=5;theme;layout;onSelect;onCancel;onSelectionChange;constructor(e,t,s,r={}){this.items=e,this.filteredItems=e,this.maxVisible=t,this.theme=s,this.layout=r}setFilter(e){this.filteredItems=this.items.filter(t=>t.value.toLowerCase().startsWith(e.toLowerCase())),this.selectedIndex=0}setSelectedIndex(e){this.selectedIndex=Math.max(0,Math.min(e,this.filteredItems.length-1))}invalidate(){}render(e){let t=[];if(this.filteredItems.length===0)return t.push(this.theme.noMatch(" No matching commands")),t;let s=this.getPrimaryColumnWidth(),r=Math.max(0,Math.min(this.selectedIndex-Math.floor(this.maxVisible/2),this.filteredItems.length-this.maxVisible)),n=Math.min(r+this.maxVisible,this.filteredItems.length);for(let o=r;o<n;o++){let l=this.filteredItems[o];if(!l)continue;let a=o===this.selectedIndex,c=l.description?Eo(l.description):void 0;t.push(this.renderItem(l,a,e,c,s))}if(r>0||n<this.filteredItems.length){let o=` (${this.selectedIndex+1}/${this.filteredItems.length})`;t.push(this.theme.scrollInfo(X(o,e-2,"")))}return t}handleInput(e){let t=ee();if(t.matches(e,"tui.select.up"))this.selectedIndex=this.selectedIndex===0?this.filteredItems.length-1:this.selectedIndex-1,this.notifySelectionChange();else if(t.matches(e,"tui.select.down"))this.selectedIndex=this.selectedIndex===this.filteredItems.length-1?0:this.selectedIndex+1,this.notifySelectionChange();else if(t.matches(e,"tui.select.confirm")){let s=this.filteredItems[this.selectedIndex];s&&this.onSelect&&this.onSelect(s)}else t.matches(e,"tui.select.cancel")&&this.onCancel&&this.onCancel()}renderItem(e,t,s,r,n){let o=t?"\u2192 ":" ",l=y(o);if(r&&s>40){let h=Math.max(1,Math.min(n,s-l-4)),u=Math.max(1,h-tr),f=this.truncatePrimary(e,t,u,h),d=y(f),m=" ".repeat(Math.max(1,h-d)),p=l+d+m.length,x=s-p-2;if(x>$o){let S=X(r,x,"");if(t)return this.theme.selectedText(`${o}${f}${m}${S}`);let g=this.theme.description(m+S);return o+f+g}}let a=s-l-2,c=this.truncatePrimary(e,t,a,a);return t?this.theme.selectedText(`${o}${c}`):o+c}getPrimaryColumnWidth(){let{min:e,max:t}=this.getPrimaryColumnBounds(),s=this.filteredItems.reduce((r,n)=>Math.max(r,y(this.getDisplayValue(n))+tr),0);return Oo(s,e,t)}getPrimaryColumnBounds(){let e=this.layout.minPrimaryColumnWidth??this.layout.maxPrimaryColumnWidth??er,t=this.layout.maxPrimaryColumnWidth??this.layout.minPrimaryColumnWidth??er;return{min:Math.max(1,Math.min(e,t)),max:Math.max(1,Math.max(e,t))}}truncatePrimary(e,t,s,r){let n=this.getDisplayValue(e),o=this.layout.truncatePrimary?this.layout.truncatePrimary({text:n,maxWidth:s,columnWidth:r,item:e,isSelected:t}):X(n,s,"");return X(o,s,"")}getDisplayValue(e){return e.label||e.value}notifySelectionChange(){let e=this.filteredItems[this.selectedIndex];e&&this.onSelectionChange&&this.onSelectionChange(e)}getSelectedItem(){return this.filteredItems[this.selectedIndex]||null}};var or=pt(),Bo=Re(),lr=/\[paste #(\d+)( (\+\d+ lines|\d+ chars))?\]/g,ar=/^\[paste #(\d+)( (\+\d+ lines|\d+ chars))?\]$/;function Oe(i){return i.length>=10&&ar.test(i)}function _o(i,e,t){if(t.size===0||!i.includes("[paste #"))return e.segment(i);let s=[];for(let l of i.matchAll(lr)){let a=Number.parseInt(l[1],10);t.has(a)&&s.push({start:l.index,end:l.index+l[0].length})}if(s.length===0)return e.segment(i);let r=e.segment(i),n=[],o=0;for(let l of r){for(;o<s.length&&s[o].end<=l.index;)o++;let a=o<s.length?s[o]:null;if(a&&l.index>=a.start&&l.index<a.end){if(l.index===a.start){let c=i.slice(a.start,a.end);n.push({segment:c,index:a.start,input:i})}}else n.push(l)}return n}function As(i,e,t){if(!i||e<=0)return[{text:"",startIndex:0,endIndex:0}];if(y(i)<=e)return[{text:i,startIndex:0,endIndex:i.length}];let r=[],n=t??[...or.segment(i)],o=0,l=0,a=-1,c=0;for(let h=0;h<n.length;h++){let u=n[h],f=u.segment,d=y(f),m=u.index,p=!Oe(f)&&U(f);if(o+d>e&&(a>=0&&o-c+d<=e?(r.push({text:i.slice(l,a),startIndex:l,endIndex:a}),l=a,o-=c):l<m&&(r.push({text:i.slice(l,m),startIndex:l,endIndex:m}),l=m,o=0),a=-1),d>e){let S=As(f,e);for(let v=0;v<S.length-1;v++){let C=S[v];r.push({text:C.text,startIndex:m+C.startIndex,endIndex:m+C.endIndex})}let g=S[S.length-1];l=m+g.startIndex,o=y(g.text),a=-1;continue}o+=d;let x=n[h+1];if(p&&x&&(Oe(x.segment)||!U(x.segment)))a=x.index,c=o;else if(!p&&x&&!U(x.segment)){let S=!Oe(f)&&mt.test(f),g=!Oe(x.segment)&&mt.test(x.segment);(S||g)&&(a=x.index,c=o)}}return r.push({text:i.slice(l),startIndex:l,endIndex:i.length}),r}var Wo={minPrimaryColumnWidth:12,maxPrimaryColumnWidth:32},Do=20,sr=["@","#"];function cr(i){return i.replace(/[\\^$.*+?()[\]{}|-]/g,"\\$&")}function ir(i){return new RegExp(`(?:^|[\\s])[${i.map(cr).join("")}][^\\s]*$`)}function rr(i){let e=i.filter(t=>t!=="@").map(cr);return new RegExp(`(?:^|[ \\t])(?:@(?:"[^"]*|[^\\s]*)|[${e.join("")}][^\\s]*)$`)}function nr(i,e,t){let s=Math.max(0,t),r=`\u2500\u2500\u2500 ${i} ${e} more `,n=s-y(r);if(n>=0)return r+"\u2500".repeat(n);let o="...".slice(0,s),l=s-y(o);return N(r,0,l,!0)+o}var Ms=class{state={lines:[""],cursorLine:0,cursorCol:0};focused=!1;tui;theme;paddingX=0;lastWidth=80;scrollOffset=0;borderColor;autocompleteProvider;autocompleteTriggerCharacters=[...sr];autocompleteTriggerPattern=ir(this.autocompleteTriggerCharacters);autocompleteDebouncePattern=rr(this.autocompleteTriggerCharacters);autocompleteList;autocompleteState=null;autocompletePrefix="";autocompleteMaxVisible=5;autocompleteAbort;autocompleteDebounceTimer;autocompleteRequestTask=Promise.resolve();autocompleteStartToken=0;autocompleteRequestId=0;pastes=new Map;pasteCounter=0;pasteBuffer="";isInPaste=!1;history=[];historyIndex=-1;historyDraft=null;killRing=new $e;lastAction=null;jumpMode=null;preferredVisualCol=null;snappedFromCursorCol=null;undoStack=new Ee;onSubmit;onChange;disableSubmit=!1;constructor(e,t,s={}){this.tui=e,this.theme=t,this.borderColor=t.borderColor;let r=s.paddingX??0;this.paddingX=Number.isFinite(r)?Math.max(0,Math.floor(r)):0;let n=s.autocompleteMaxVisible??5;this.autocompleteMaxVisible=Number.isFinite(n)?Math.max(3,Math.min(20,Math.floor(n))):5}validPasteIds(){return new Set(this.pastes.keys())}segment(e,t){return _o(e,t==="word"?Bo:or,this.validPasteIds())}getPaddingX(){return this.paddingX}setPaddingX(e){let t=Number.isFinite(e)?Math.max(0,Math.floor(e)):0;this.paddingX!==t&&(this.paddingX=t,this.tui.requestRender())}getAutocompleteMaxVisible(){return this.autocompleteMaxVisible}setAutocompleteMaxVisible(e){let t=Number.isFinite(e)?Math.max(3,Math.min(20,Math.floor(e))):5;this.autocompleteMaxVisible!==t&&(this.autocompleteMaxVisible=t,this.tui.requestRender())}setAutocompleteProvider(e){this.cancelAutocomplete(),this.autocompleteProvider=e,this.setAutocompleteTriggerCharacters(e.triggerCharacters??[])}addToHistory(e){let t=e.trim();t&&(this.history.length>0&&this.history[0]===t||(this.history.unshift(t),this.history.length>100&&this.history.pop()))}isEditorEmpty(){return this.state.lines.length===1&&this.state.lines[0]===""}isOnFirstVisualLine(){let e=this.buildVisualLineMap(this.lastWidth);return this.findCurrentVisualLine(e)===0}isOnLastVisualLine(){let e=this.buildVisualLineMap(this.lastWidth);return this.findCurrentVisualLine(e)===e.length-1}navigateHistory(e){if(this.lastAction=null,this.history.length===0)return;let t=this.historyIndex-e;if(!(t<-1||t>=this.history.length))if(this.historyIndex===-1&&t>=0&&(this.pushUndoSnapshot(),this.historyDraft=structuredClone(this.state)),this.historyIndex=t,this.historyIndex===-1){let s=this.historyDraft;this.historyDraft=null,s?(this.state=s,this.preferredVisualCol=null,this.snappedFromCursorCol=null,this.scrollOffset=0,this.onChange&&this.onChange(this.getText())):this.setTextInternal("")}else this.setTextInternal(this.history[this.historyIndex]||"",e===-1?"start":"end")}exitHistoryBrowsing(){this.historyIndex=-1,this.historyDraft=null}setTextInternal(e,t="end"){let s=e.split(`
80
- `);this.state.lines=s.length===0?[""]:s,this.state.cursorLine=t==="start"?0:this.state.lines.length-1,this.setCursorCol(t==="start"?0:this.state.lines[this.state.cursorLine]?.length||0),this.scrollOffset=0,this.onChange&&this.onChange(this.getText())}invalidate(){}render(e){let t=Math.max(0,Math.floor((e-1)/2)),s=Math.min(this.paddingX,t),r=Math.max(1,e-s*2),n=Math.max(1,r-(s?0:1));this.lastWidth=n;let o=this.borderColor("\u2500"),l=this.layoutText(n),a=this.tui.terminal.rows,c=Math.max(5,Math.floor(a*.3)),h=l.findIndex(g=>g.hasCursor);h===-1&&(h=0),h<this.scrollOffset?this.scrollOffset=h:h>=this.scrollOffset+c&&(this.scrollOffset=h-c+1);let u=Math.max(0,l.length-c);this.scrollOffset=Math.max(0,Math.min(this.scrollOffset,u));let f=l.slice(this.scrollOffset,this.scrollOffset+c),d=[],m=" ".repeat(s),p=m;if(this.scrollOffset>0){let g=nr("\u2191",this.scrollOffset,e);d.push(this.borderColor(g))}else d.push(o.repeat(e));let x=this.focused;for(let g of f){let v=g.text,C=y(g.text),T=!1;if(g.hasCursor&&g.cursorPos!==void 0){let M=v.slice(0,g.cursorPos),P=v.slice(g.cursorPos),b=x?Q:"";if(P.length>0){let A=[...this.segment(P,"grapheme")][0]?.segment||"",B=P.slice(A.length),D=`\x1B[7m${A}\x1B[0m`;v=M+b+D+B}else v=M+b+"\x1B[7m \x1B[0m",C=C+1,C>r&&s>0&&(T=!0)}let w=" ".repeat(Math.max(0,r-C)),R=T?p.slice(1):p;d.push(`${m}${v}${w}${R}`)}let S=l.length-(this.scrollOffset+f.length);if(S>0){let g=nr("\u2193",S,e);d.push(this.borderColor(g))}else d.push(o.repeat(e));if(this.autocompleteState&&this.autocompleteList){let g=this.autocompleteList.render(r);for(let v of g){let C=y(v),T=" ".repeat(Math.max(0,r-C));d.push(`${m}${v}${T}${p}`)}}return d}handleInput(e){let t=ee();if(this.jumpMode!==null){if(t.matches(e,"tui.editor.jumpForward")||t.matches(e,"tui.editor.jumpBackward")){this.jumpMode=null;return}let r=Ut(e)??(e.charCodeAt(0)>=32?e:void 0);if(r!==void 0){let n=this.jumpMode;this.jumpMode=null,this.jumpToChar(r,n);return}this.jumpMode=null}if(e.includes("\x1B[200~")&&(this.isInPaste=!0,this.pasteBuffer="",e=e.replace("\x1B[200~","")),this.isInPaste){this.pasteBuffer+=e;let r=this.pasteBuffer.indexOf("\x1B[201~");if(r!==-1){let n=this.pasteBuffer.substring(0,r);n.length>0&&this.handlePaste(n),this.isInPaste=!1;let o=this.pasteBuffer.substring(r+6);this.pasteBuffer="",o.length>0&&this.handleInput(o);return}return}if(t.matches(e,"tui.input.copy"))return;if(t.matches(e,"tui.editor.undo")){this.undo();return}if(this.autocompleteState&&this.autocompleteList){if(t.matches(e,"tui.select.cancel")){this.cancelAutocomplete();return}if(t.matches(e,"tui.select.up")||t.matches(e,"tui.select.down")){this.autocompleteList.handleInput(e);return}if(t.matches(e,"tui.input.tab")){let r=this.autocompleteList.getSelectedItem();if(r&&this.autocompleteProvider){this.pushUndoSnapshot(),this.lastAction=null;let n=this.autocompleteProvider.applyCompletion(this.state.lines,this.state.cursorLine,this.state.cursorCol,r,this.autocompletePrefix);this.state.lines=n.lines,this.state.cursorLine=n.cursorLine,this.setCursorCol(n.cursorCol),this.cancelAutocomplete(),this.onChange&&this.onChange(this.getText())}return}if(t.matches(e,"tui.select.confirm")){let r=this.autocompleteList.getSelectedItem();if(r&&this.autocompleteProvider){this.pushUndoSnapshot(),this.lastAction=null;let n=this.autocompleteProvider.applyCompletion(this.state.lines,this.state.cursorLine,this.state.cursorCol,r,this.autocompletePrefix);if(this.state.lines=n.lines,this.state.cursorLine=n.cursorLine,this.setCursorCol(n.cursorCol),this.autocompletePrefix.startsWith("/"))this.cancelAutocomplete();else{this.cancelAutocomplete(),this.onChange&&this.onChange(this.getText());return}}}}if(t.matches(e,"tui.input.tab")&&!this.autocompleteState){this.handleTabCompletion();return}if(t.matches(e,"tui.editor.deleteToLineEnd")){this.deleteToEndOfLine();return}if(t.matches(e,"tui.editor.deleteToLineStart")){this.deleteToStartOfLine();return}if(t.matches(e,"tui.editor.deleteWordBackward")){this.deleteWordBackwards();return}if(t.matches(e,"tui.editor.deleteWordForward")){this.deleteWordForward();return}if(t.matches(e,"tui.editor.deleteCharBackward")||te(e,"shift+backspace")){this.handleBackspace();return}if(t.matches(e,"tui.editor.deleteCharForward")||te(e,"shift+delete")){this.handleForwardDelete();return}if(t.matches(e,"tui.editor.yank")){this.yank();return}if(t.matches(e,"tui.editor.yankPop")){this.yankPop();return}if(t.matches(e,"tui.editor.historyPrevious")){this.cancelAutocomplete(),this.navigateHistory(-1);return}if(t.matches(e,"tui.editor.historyNext")){this.cancelAutocomplete(),this.navigateHistory(1);return}if(t.matches(e,"tui.editor.cursorLineStart")){this.moveToLineStart();return}if(t.matches(e,"tui.editor.cursorLineEnd")){this.moveToLineEnd();return}if(t.matches(e,"tui.editor.cursorWordLeft")){this.moveWordBackwards();return}if(t.matches(e,"tui.editor.cursorWordRight")){this.moveWordForwards();return}if(t.matches(e,"tui.input.newLine")||e.charCodeAt(0)===10&&e.length>1||e==="\x1B\r"||e==="\x1B[13;2~"||e.length>1&&e.includes("\x1B")&&e.includes("\r")||e===`
81
- `&&e.length===1){if(this.shouldSubmitOnBackslashEnter(e,t)){this.handleBackspace(),this.submitValue();return}this.addNewLine();return}if(t.matches(e,"tui.input.submit")){if(this.disableSubmit)return;let r=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol>0&&r[this.state.cursorCol-1]==="\\"){this.handleBackspace(),this.addNewLine();return}this.submitValue();return}if(t.matches(e,"tui.editor.cursorUp")){this.isOnFirstVisualLine()&&(this.isEditorEmpty()||this.historyIndex>-1||this.state.cursorCol===0)?this.navigateHistory(-1):this.isOnFirstVisualLine()?this.moveToLineStart():this.moveCursor(-1,0);return}if(t.matches(e,"tui.editor.cursorDown")){this.historyIndex>-1&&this.isOnLastVisualLine()?this.navigateHistory(1):this.isOnLastVisualLine()?this.moveToLineEnd():this.moveCursor(1,0);return}if(t.matches(e,"tui.editor.cursorRight")){this.moveCursor(0,1);return}if(t.matches(e,"tui.editor.cursorLeft")){this.moveCursor(0,-1);return}if(t.matches(e,"tui.editor.pageUp")){this.pageScroll(-1);return}if(t.matches(e,"tui.editor.pageDown")){this.pageScroll(1);return}if(t.matches(e,"tui.editor.jumpForward")){this.jumpMode="forward";return}if(t.matches(e,"tui.editor.jumpBackward")){this.jumpMode="backward";return}if(te(e,"shift+space")){this.insertCharacter(" ");return}let s=Ut(e);if(s!==void 0){this.insertCharacter(s);return}e.charCodeAt(0)>=32&&this.insertCharacter(e)}layoutText(e){let t=[];if(this.state.lines.length===0||this.state.lines.length===1&&this.state.lines[0]==="")return t.push({text:"",hasCursor:!0,cursorPos:0}),t;for(let s=0;s<this.state.lines.length;s++){let r=this.state.lines[s]||"",n=s===this.state.cursorLine;if(y(r)<=e)n?t.push({text:r,hasCursor:!0,cursorPos:this.state.cursorCol}):t.push({text:r,hasCursor:!1});else{let l=As(r,e,[...this.segment(r,"grapheme")]);for(let a=0;a<l.length;a++){let c=l[a];if(!c)continue;let h=this.state.cursorCol,u=a===l.length-1,f=!1,d=0;n&&(u?(f=h>=c.startIndex,d=h-c.startIndex):(f=h>=c.startIndex&&h<c.endIndex,f&&(d=h-c.startIndex,d>c.text.length&&(d=c.text.length)))),f?t.push({text:c.text,hasCursor:!0,cursorPos:d}):t.push({text:c.text,hasCursor:!1})}}}return t}getText(){return this.state.lines.join(`
82
- `)}expandPasteMarkers(e){let t=e;for(let[s,r]of this.pastes){let n=new RegExp(`\\[paste #${s}( (\\+\\d+ lines|\\d+ chars))?\\]`,"g");t=t.replace(n,()=>r)}return t}getExpandedText(){return this.expandPasteMarkers(this.state.lines.join(`
83
- `))}getLines(){return[...this.state.lines]}getCursor(){return{line:this.state.cursorLine,col:this.state.cursorCol}}setText(e){this.cancelAutocomplete(),this.lastAction=null,this.exitHistoryBrowsing();let t=this.normalizeText(e);this.getText()!==t&&this.pushUndoSnapshot(),this.pastes.clear(),this.pasteCounter=0,this.setTextInternal(t)}insertTextAtCursor(e){e&&(this.cancelAutocomplete(),this.pushUndoSnapshot(),this.lastAction=null,this.exitHistoryBrowsing(),this.insertTextAtCursorInternal(e))}normalizeText(e){return e.replace(/\r\n/g,`
84
- `).replace(/\r/g,`
85
- `).replace(/\t/g," ")}insertTextAtCursorInternal(e){if(!e)return;let t=this.normalizeText(e),s=t.split(`
86
- `),r=this.state.lines[this.state.cursorLine]||"",n=r.slice(0,this.state.cursorCol),o=r.slice(this.state.cursorCol);s.length===1?(this.state.lines[this.state.cursorLine]=n+t+o,this.setCursorCol(this.state.cursorCol+t.length)):(this.state.lines=[...this.state.lines.slice(0,this.state.cursorLine),n+s[0],...s.slice(1,-1),s[s.length-1]+o,...this.state.lines.slice(this.state.cursorLine+1)],this.state.cursorLine+=s.length-1,this.setCursorCol((s[s.length-1]||"").length)),this.onChange&&this.onChange(this.getText())}insertCharacter(e,t){this.exitHistoryBrowsing(),t||((U(e)||this.lastAction!=="type-word")&&this.pushUndoSnapshot(),this.lastAction="type-word");let s=this.state.lines[this.state.cursorLine]||"",r=s.slice(0,this.state.cursorCol),n=s.slice(this.state.cursorCol);if(this.state.lines[this.state.cursorLine]=r+e+n,this.setCursorCol(this.state.cursorCol+e.length),this.onChange&&this.onChange(this.getText()),this.autocompleteState)this.updateAutocomplete();else if(e==="/"&&this.isAtStartOfMessage())this.tryTriggerAutocomplete();else if(this.autocompleteTriggerCharacters.includes(e)){let l=(this.state.lines[this.state.cursorLine]||"").slice(0,this.state.cursorCol),a=l[l.length-2];(l.length===1||a===" "||a===" ")&&this.tryTriggerAutocomplete()}else if(/[a-zA-Z0-9.\-_]/.test(e)){let l=(this.state.lines[this.state.cursorLine]||"").slice(0,this.state.cursorCol);this.isInSlashCommandContext(l)?this.tryTriggerAutocomplete():this.autocompleteTriggerPattern.test(l)&&this.tryTriggerAutocomplete()}}handlePaste(e){this.cancelAutocomplete(),this.exitHistoryBrowsing(),this.lastAction=null,this.pushUndoSnapshot();let t=e.replace(/\x1b\[(\d+);5u/g,(l,a)=>{let c=Number(a);return c>=97&&c<=122?String.fromCharCode(c-96):c>=65&&c<=90?String.fromCharCode(c-64):l}),r=this.normalizeText(t).split("").filter(l=>l===`
87
- `||l.charCodeAt(0)>=32).join("");if(/^[/~.]/.test(r)){let l=this.state.lines[this.state.cursorLine]||"",a=this.state.cursorCol>0?l[this.state.cursorCol-1]:"";a&&/\w/.test(a)&&(r=` ${r}`)}let n=r.split(`
88
- `),o=r.length;if(n.length>10||o>1e3){this.pasteCounter++;let l=this.pasteCounter;this.pastes.set(l,r);let a=n.length>10?`[paste #${l} +${n.length} lines]`:`[paste #${l} ${o} chars]`;this.insertTextAtCursorInternal(a);return}if(n.length===1){this.insertTextAtCursorInternal(r);return}this.insertTextAtCursorInternal(r)}addNewLine(){this.cancelAutocomplete(),this.exitHistoryBrowsing(),this.lastAction=null,this.pushUndoSnapshot();let e=this.state.lines[this.state.cursorLine]||"",t=e.slice(0,this.state.cursorCol),s=e.slice(this.state.cursorCol);this.state.lines[this.state.cursorLine]=t,this.state.lines.splice(this.state.cursorLine+1,0,s),this.state.cursorLine++,this.setCursorCol(0),this.onChange&&this.onChange(this.getText())}shouldSubmitOnBackslashEnter(e,t){if(this.disableSubmit||!te(e,"enter"))return!1;let s=t.getKeys("tui.input.submit");if(!(s.includes("shift+enter")||s.includes("shift+return")))return!1;let n=this.state.lines[this.state.cursorLine]||"";return this.state.cursorCol>0&&n[this.state.cursorCol-1]==="\\"}submitValue(){this.cancelAutocomplete();let e=this.expandPasteMarkers(this.state.lines.join(`
89
- `)).trim();this.state={lines:[""],cursorLine:0,cursorCol:0},this.pastes.clear(),this.pasteCounter=0,this.exitHistoryBrowsing(),this.scrollOffset=0,this.undoStack.clear(),this.lastAction=null,this.onChange&&this.onChange(""),this.onSubmit&&this.onSubmit(e)}handleBackspace(){if(this.exitHistoryBrowsing(),this.lastAction=null,this.state.cursorCol>0){this.pushUndoSnapshot();let e=this.state.lines[this.state.cursorLine]||"",t=e.slice(0,this.state.cursorCol),s=[...this.segment(t,"grapheme")],r=s[s.length-1],n=r?r.segment.length:1,o=ar.exec(r.segment);if(o){let c=Number(o[1]);this.pastes.delete(c),this.pasteCounter--;let h=[...this.pastes.keys()].filter(u=>u>c).sort((u,f)=>u-f);for(let u of h)this.pastes.set(u-1,this.pastes.get(u)),this.pastes.delete(u);this.state.lines=this.state.lines.map(u=>u.replace(lr,(f,d,m)=>{let p=Number(d);return p<=c?f:`[paste #${p-1}${m}]`}))}e=this.state.lines[this.state.cursorLine]||"";let l=e.slice(0,this.state.cursorCol-n),a=e.slice(this.state.cursorCol);this.state.lines[this.state.cursorLine]=l+a,this.setCursorCol(this.state.cursorCol-n)}else if(this.state.cursorLine>0){this.pushUndoSnapshot();let e=this.state.lines[this.state.cursorLine]||"",t=this.state.lines[this.state.cursorLine-1]||"";this.state.lines[this.state.cursorLine-1]=t+e,this.state.lines.splice(this.state.cursorLine,1),this.state.cursorLine--,this.setCursorCol(t.length)}if(this.onChange&&this.onChange(this.getText()),this.autocompleteState)this.updateAutocomplete();else{let t=(this.state.lines[this.state.cursorLine]||"").slice(0,this.state.cursorCol);this.isInSlashCommandContext(t)?this.tryTriggerAutocomplete():this.autocompleteTriggerPattern.test(t)&&this.tryTriggerAutocomplete()}}setCursorCol(e){this.state.cursorCol=e,this.preferredVisualCol=null,this.snappedFromCursorCol=null}moveToVisualLine(e,t,s){let r=e[t],n=e[s];if(!(r&&n))return;let o;if(this.snappedFromCursorCol!==null){let p=this.findVisualLineAt(e,r.logicalLine,this.snappedFromCursorCol);o=this.snappedFromCursorCol-e[p].startCol}else o=this.state.cursorCol-r.startCol;let a=t===e.length-1||e[t+1]?.logicalLine!==r.logicalLine?r.length:Math.max(0,r.length-1),h=s===e.length-1||e[s+1]?.logicalLine!==n.logicalLine?n.length:Math.max(0,n.length-1),u=this.computeVerticalMoveColumn(o,a,h);this.state.cursorLine=n.logicalLine;let f=n.startCol+u,d=this.state.lines[n.logicalLine]||"";this.state.cursorCol=Math.min(f,d.length);let m=[...this.segment(d,"grapheme")];for(let p of m){if(p.index>this.state.cursorCol)break;if(!(p.segment.length<=1)&&this.state.cursorCol<p.index+p.segment.length){let x=p.index<n.startCol,S=s>t;if(x&&S){let g=p.index+p.segment.length,v=s+1;for(;v<e.length&&e[v].logicalLine===n.logicalLine&&e[v].startCol<g;)v++;if(v<e.length){this.moveToVisualLine(e,t,v);return}}this.snappedFromCursorCol=this.state.cursorCol,this.state.cursorCol=p.index;return}}this.snappedFromCursorCol=null}computeVerticalMoveColumn(e,t,s){let r=this.preferredVisualCol!==null,n=e<t,o=s<e;if(!r||n)return o?(this.preferredVisualCol=e,s):(this.preferredVisualCol=null,e);let l=s<this.preferredVisualCol;if(o||l)return s;let a=this.preferredVisualCol;return this.preferredVisualCol=null,a}moveToLineStart(){this.lastAction=null,this.setCursorCol(0)}moveToLineEnd(){this.lastAction=null;let e=this.state.lines[this.state.cursorLine]||"";this.setCursorCol(e.length)}deleteToStartOfLine(){this.exitHistoryBrowsing();let e=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol>0){this.pushUndoSnapshot();let t=e.slice(0,this.state.cursorCol);this.killRing.push(t,{prepend:!0,accumulate:this.lastAction==="kill"}),this.lastAction="kill",this.state.lines[this.state.cursorLine]=e.slice(this.state.cursorCol),this.setCursorCol(0)}else if(this.state.cursorLine>0){this.pushUndoSnapshot(),this.killRing.push(`
90
- `,{prepend:!0,accumulate:this.lastAction==="kill"}),this.lastAction="kill";let t=this.state.lines[this.state.cursorLine-1]||"";this.state.lines[this.state.cursorLine-1]=t+e,this.state.lines.splice(this.state.cursorLine,1),this.state.cursorLine--,this.setCursorCol(t.length)}this.onChange&&this.onChange(this.getText())}deleteToEndOfLine(){this.exitHistoryBrowsing();let e=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol<e.length){this.pushUndoSnapshot();let t=e.slice(this.state.cursorCol);this.killRing.push(t,{prepend:!1,accumulate:this.lastAction==="kill"}),this.lastAction="kill",this.state.lines[this.state.cursorLine]=e.slice(0,this.state.cursorCol)}else if(this.state.cursorLine<this.state.lines.length-1){this.pushUndoSnapshot(),this.killRing.push(`
91
- `,{prepend:!1,accumulate:this.lastAction==="kill"}),this.lastAction="kill";let t=this.state.lines[this.state.cursorLine+1]||"";this.state.lines[this.state.cursorLine]=e+t,this.state.lines.splice(this.state.cursorLine+1,1)}this.onChange&&this.onChange(this.getText())}deleteWordBackwards(){this.exitHistoryBrowsing();let e=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol===0){if(this.state.cursorLine>0){this.pushUndoSnapshot(),this.killRing.push(`
92
- `,{prepend:!0,accumulate:this.lastAction==="kill"}),this.lastAction="kill";let t=this.state.lines[this.state.cursorLine-1]||"";this.state.lines[this.state.cursorLine-1]=t+e,this.state.lines.splice(this.state.cursorLine,1),this.state.cursorLine--,this.setCursorCol(t.length)}}else{this.pushUndoSnapshot();let t=this.lastAction==="kill",s=this.state.cursorCol;this.moveWordBackwards();let r=this.state.cursorCol;this.setCursorCol(s);let n=e.slice(r,this.state.cursorCol);this.killRing.push(n,{prepend:!0,accumulate:t}),this.lastAction="kill",this.state.lines[this.state.cursorLine]=e.slice(0,r)+e.slice(this.state.cursorCol),this.setCursorCol(r)}this.onChange&&this.onChange(this.getText())}deleteWordForward(){this.exitHistoryBrowsing();let e=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol>=e.length){if(this.state.cursorLine<this.state.lines.length-1){this.pushUndoSnapshot(),this.killRing.push(`
93
- `,{prepend:!1,accumulate:this.lastAction==="kill"}),this.lastAction="kill";let t=this.state.lines[this.state.cursorLine+1]||"";this.state.lines[this.state.cursorLine]=e+t,this.state.lines.splice(this.state.cursorLine+1,1)}}else{this.pushUndoSnapshot();let t=this.lastAction==="kill",s=this.state.cursorCol;this.moveWordForwards();let r=this.state.cursorCol;this.setCursorCol(s);let n=e.slice(this.state.cursorCol,r);this.killRing.push(n,{prepend:!1,accumulate:t}),this.lastAction="kill",this.state.lines[this.state.cursorLine]=e.slice(0,this.state.cursorCol)+e.slice(r)}this.onChange&&this.onChange(this.getText())}handleForwardDelete(){this.exitHistoryBrowsing(),this.lastAction=null;let e=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol<e.length){this.pushUndoSnapshot();let t=e.slice(this.state.cursorCol),r=[...this.segment(t,"grapheme")][0],n=r?r.segment.length:1,o=e.slice(0,this.state.cursorCol),l=e.slice(this.state.cursorCol+n);this.state.lines[this.state.cursorLine]=o+l}else if(this.state.cursorLine<this.state.lines.length-1){this.pushUndoSnapshot();let t=this.state.lines[this.state.cursorLine+1]||"";this.state.lines[this.state.cursorLine]=e+t,this.state.lines.splice(this.state.cursorLine+1,1)}if(this.onChange&&this.onChange(this.getText()),this.autocompleteState)this.updateAutocomplete();else{let s=(this.state.lines[this.state.cursorLine]||"").slice(0,this.state.cursorCol);this.isInSlashCommandContext(s)?this.tryTriggerAutocomplete():this.autocompleteTriggerPattern.test(s)&&this.tryTriggerAutocomplete()}}buildVisualLineMap(e){let t=[];for(let s=0;s<this.state.lines.length;s++){let r=this.state.lines[s]||"",n=y(r);if(r.length===0)t.push({logicalLine:s,startCol:0,length:0});else if(n<=e)t.push({logicalLine:s,startCol:0,length:r.length});else{let o=As(r,e,[...this.segment(r,"grapheme")]);for(let l of o)t.push({logicalLine:s,startCol:l.startIndex,length:l.endIndex-l.startIndex})}}return t}findVisualLineAt(e,t,s){for(let r=0;r<e.length;r++){let n=e[r];if(!n||n.logicalLine!==t)continue;let o=s-n.startCol,l=r===e.length-1||e[r+1]?.logicalLine!==n.logicalLine;if(o>=0&&(o<n.length||l&&o===n.length))return r}return e.length-1}findCurrentVisualLine(e){return this.findVisualLineAt(e,this.state.cursorLine,this.state.cursorCol)}moveCursor(e,t){this.lastAction=null;let s=this.buildVisualLineMap(this.lastWidth),r=this.findCurrentVisualLine(s);if(e!==0){let n=r+e;n>=0&&n<s.length&&this.moveToVisualLine(s,r,n)}if(t!==0){let n=this.state.lines[this.state.cursorLine]||"";if(t>0)if(this.state.cursorCol<n.length){let o=n.slice(this.state.cursorCol),a=[...this.segment(o,"grapheme")][0];this.setCursorCol(this.state.cursorCol+(a?a.segment.length:1))}else if(this.state.cursorLine<this.state.lines.length-1)this.state.cursorLine++,this.setCursorCol(0);else{let o=s[r];o&&(this.preferredVisualCol=this.state.cursorCol-o.startCol)}else if(this.state.cursorCol>0){let o=n.slice(0,this.state.cursorCol),l=[...this.segment(o,"grapheme")],a=l[l.length-1];this.setCursorCol(this.state.cursorCol-(a?a.segment.length:1))}else if(this.state.cursorLine>0){this.state.cursorLine--;let o=this.state.lines[this.state.cursorLine]||"";this.setCursorCol(o.length)}}this.autocompleteState&&this.updateAutocomplete()}pageScroll(e){this.lastAction=null;let t=this.tui.terminal.rows,s=Math.max(5,Math.floor(t*.3)),r=this.buildVisualLineMap(this.lastWidth),n=this.findCurrentVisualLine(r),o=Math.max(0,Math.min(r.length-1,n+e*s));this.moveToVisualLine(r,n,o)}moveWordBackwards(){this.lastAction=null;let e=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol===0){if(this.state.cursorLine>0){this.state.cursorLine--;let t=this.state.lines[this.state.cursorLine]||"";this.setCursorCol(t.length)}return}this.setCursorCol(It(e,this.state.cursorCol,{segment:t=>this.segment(t,"word"),isAtomicSegment:Oe}))}yank(){if(this.killRing.length===0)return;this.pushUndoSnapshot();let e=this.killRing.peek();this.insertYankedText(e),this.lastAction="yank"}yankPop(){if(this.lastAction!=="yank"||this.killRing.length<=1)return;this.pushUndoSnapshot(),this.deleteYankedText(),this.killRing.rotate();let e=this.killRing.peek();this.insertYankedText(e),this.lastAction="yank"}insertYankedText(e){this.exitHistoryBrowsing();let t=e.split(`
94
- `);if(t.length===1){let s=this.state.lines[this.state.cursorLine]||"",r=s.slice(0,this.state.cursorCol),n=s.slice(this.state.cursorCol);this.state.lines[this.state.cursorLine]=r+e+n,this.setCursorCol(this.state.cursorCol+e.length)}else{let s=this.state.lines[this.state.cursorLine]||"",r=s.slice(0,this.state.cursorCol),n=s.slice(this.state.cursorCol);this.state.lines[this.state.cursorLine]=r+(t[0]||"");for(let l=1;l<t.length-1;l++)this.state.lines.splice(this.state.cursorLine+l,0,t[l]||"");let o=this.state.cursorLine+t.length-1;this.state.lines.splice(o,0,(t[t.length-1]||"")+n),this.state.cursorLine=o,this.setCursorCol((t[t.length-1]||"").length)}this.onChange&&this.onChange(this.getText())}deleteYankedText(){let e=this.killRing.peek();if(!e)return;let t=e.split(`
95
- `);if(t.length===1){let s=this.state.lines[this.state.cursorLine]||"",r=e.length,n=s.slice(0,this.state.cursorCol-r),o=s.slice(this.state.cursorCol);this.state.lines[this.state.cursorLine]=n+o,this.setCursorCol(this.state.cursorCol-r)}else{let s=this.state.cursorLine-(t.length-1),r=(this.state.lines[s]||"").length-(t[0]||"").length,n=(this.state.lines[this.state.cursorLine]||"").slice(this.state.cursorCol),o=(this.state.lines[s]||"").slice(0,r);this.state.lines.splice(s,t.length,o+n),this.state.cursorLine=s,this.setCursorCol(r)}this.onChange&&this.onChange(this.getText())}pushUndoSnapshot(){this.undoStack.push({state:this.state,pastes:this.pastes,pasteCounter:this.pasteCounter})}undo(){this.exitHistoryBrowsing();let e=this.undoStack.pop();e&&(Object.assign(this.state,e.state),this.pastes=e.pastes,this.pasteCounter=e.pasteCounter,this.lastAction=null,this.preferredVisualCol=null,this.onChange&&this.onChange(this.getText()))}jumpToChar(e,t){this.lastAction=null;let s=t==="forward",r=this.state.lines,n=s?r.length:-1,o=s?1:-1;for(let l=this.state.cursorLine;l!==n;l+=o){let a=r[l]||"",h=l===this.state.cursorLine?s?this.state.cursorCol+1:this.state.cursorCol-1:void 0,u=s?a.indexOf(e,h):a.lastIndexOf(e,h);if(u!==-1){this.state.cursorLine=l,this.setCursorCol(u);return}}}moveWordForwards(){this.lastAction=null;let e=this.state.lines[this.state.cursorLine]||"";if(this.state.cursorCol>=e.length){this.state.cursorLine<this.state.lines.length-1&&(this.state.cursorLine++,this.setCursorCol(0));return}this.setCursorCol(At(e,this.state.cursorCol,{segment:t=>this.segment(t,"word"),isAtomicSegment:Oe}))}isSlashMenuAllowed(){return this.state.cursorLine===0}isAtStartOfMessage(){if(!this.isSlashMenuAllowed())return!1;let t=(this.state.lines[this.state.cursorLine]||"").slice(0,this.state.cursorCol);return t.trim()===""||t.trim()==="/"}isInSlashCommandContext(e){return this.isSlashMenuAllowed()&&e.trimStart().startsWith("/")}getBestAutocompleteMatchIndex(e,t){if(!t)return-1;let s=-1;for(let r=0;r<e.length;r++){let n=e[r].value;if(n===t)return r;s===-1&&n.startsWith(t)&&(s=r)}return s}createAutocompleteList(e,t){let s=e.startsWith("/")?Wo:void 0;return new Ye(t,this.autocompleteMaxVisible,this.theme.selectList,s)}tryTriggerAutocomplete(e=!1){this.requestAutocomplete({force:!1,explicitTab:e})}handleTabCompletion(){if(!this.autocompleteProvider)return;let t=(this.state.lines[this.state.cursorLine]||"").slice(0,this.state.cursorCol);this.isInSlashCommandContext(t)&&!t.trimStart().includes(" ")?this.handleSlashCommandCompletion():this.forceFileAutocomplete(!0)}handleSlashCommandCompletion(){this.requestAutocomplete({force:!1,explicitTab:!0})}forceFileAutocomplete(e=!1){this.requestAutocomplete({force:!0,explicitTab:e})}requestAutocomplete(e){if(!this.autocompleteProvider||e.force&&!(!this.autocompleteProvider.shouldTriggerFileCompletion||this.autocompleteProvider.shouldTriggerFileCompletion(this.state.lines,this.state.cursorLine,this.state.cursorCol)))return;this.cancelAutocompleteRequest();let t=++this.autocompleteStartToken,s=this.getAutocompleteDebounceMs(e);if(s>0){this.autocompleteDebounceTimer=setTimeout(()=>{this.autocompleteDebounceTimer=void 0,this.startAutocompleteRequest(t,e)},s);return}this.startAutocompleteRequest(t,e)}async startAutocompleteRequest(e,t){let s=this.autocompleteRequestTask;this.autocompleteRequestTask=(async()=>{if(await s,e!==this.autocompleteStartToken||!this.autocompleteProvider)return;let r=new AbortController;this.autocompleteAbort=r;let n=++this.autocompleteRequestId,o=this.getText(),l=this.state.cursorLine,a=this.state.cursorCol;await this.runAutocompleteRequest(n,r,o,l,a,t)})(),await this.autocompleteRequestTask}setAutocompleteTriggerCharacters(e){let t=[...sr];for(let s of e)s.length!==1||s==="/"||U(s)||t.includes(s)||t.push(s);this.autocompleteTriggerCharacters=t,this.autocompleteTriggerPattern=ir(t),this.autocompleteDebouncePattern=rr(t)}getAutocompleteDebounceMs(e){if(e.explicitTab||e.force)return 0;let s=(this.state.lines[this.state.cursorLine]||"").slice(0,this.state.cursorCol);return this.autocompleteDebouncePattern.test(s)?Do:0}async runAutocompleteRequest(e,t,s,r,n,o){if(!this.autocompleteProvider)return;let l=await this.autocompleteProvider.getSuggestions(this.state.lines,this.state.cursorLine,this.state.cursorCol,{signal:t.signal,force:o.force});if(this.isAutocompleteRequestCurrent(e,t,s,r,n)){if(this.autocompleteAbort=void 0,!l||!Array.isArray(l.items)||l.items.length===0){this.cancelAutocomplete(),this.tui.requestRender();return}if(o.force&&o.explicitTab&&l.items.length===1){let a=l.items[0];this.pushUndoSnapshot(),this.lastAction=null;let c=this.autocompleteProvider.applyCompletion(this.state.lines,this.state.cursorLine,this.state.cursorCol,a,l.prefix);this.state.lines=c.lines,this.state.cursorLine=c.cursorLine,this.setCursorCol(c.cursorCol),this.onChange&&this.onChange(this.getText()),this.tui.requestRender();return}this.applyAutocompleteSuggestions(l,o.force?"force":"regular"),this.tui.requestRender()}}isAutocompleteRequestCurrent(e,t,s,r,n){return!t.signal.aborted&&e===this.autocompleteRequestId&&this.getText()===s&&this.state.cursorLine===r&&this.state.cursorCol===n}applyAutocompleteSuggestions(e,t){this.autocompletePrefix=e.prefix,this.autocompleteList=this.createAutocompleteList(e.prefix,e.items);let s=this.getBestAutocompleteMatchIndex(e.items,e.prefix);s>=0&&this.autocompleteList.setSelectedIndex(s),this.autocompleteState=t}cancelAutocompleteRequest(){this.autocompleteStartToken+=1,this.autocompleteDebounceTimer&&(clearTimeout(this.autocompleteDebounceTimer),this.autocompleteDebounceTimer=void 0),this.autocompleteAbort?.abort(),this.autocompleteAbort=void 0}clearAutocompleteUi(){this.autocompleteState=null,this.autocompleteList=void 0,this.autocompletePrefix=""}cancelAutocomplete(){this.cancelAutocompleteRequest(),this.clearAutocompleteUi()}isShowingAutocomplete(){return this.autocompleteState!==null}updateAutocomplete(){!this.autocompleteState||!this.autocompleteProvider||this.requestAutocomplete({force:this.autocompleteState==="force",explicitTab:!1})}};var Be=Symbol.for("@earendil-works/pi-tui/layout-node");function hr(i){let e=i;return typeof e[Be]=="function"?e[Be]():void 0}function Fo(i){return!("render"in i)}function Xe(i,e){return i===void 0||!Number.isFinite(i)?e:Math.max(0,Math.floor(i))}var Mt=class extends ce{entries=[];gap;align;constructor(e=[],t={}){super(),this.gap=Xe(t.gap,0),this.align=t.align??"stretch";for(let s of e)Fo(s)?this.addChild(s.component,s):this.addChild(s)}addChild(e,t={}){super.addChild(e),this.entries.push({component:e,...t.basis===void 0?{}:{basis:t.basis},...t.grow===void 0?{}:{grow:Xe(t.grow,0)},...t.shrink===void 0?{}:{shrink:Xe(t.shrink,1)},...t.minSize===void 0?{}:{minSize:Xe(t.minSize,0)},...t.maxSize===void 0?{}:{maxSize:Xe(t.maxSize,Number.MAX_SAFE_INTEGER)},...t.visible===void 0?{}:{visible:t.visible}})}removeChild(e){super.removeChild(e);let t=this.entries.findIndex(s=>s.component===e);t!==-1&&this.entries.splice(t,1)}clear(){super.clear(),this.entries.length=0}[Be](){return{type:this.layoutType,entries:this.entries,gap:this.gap,align:this.align}}};function Pt(i,e){return i.filter(t=>t.visible?.(e)??!0)}function No(i,e){let t=Math.max(0,Math.floor(e.minSize??0)),s=Math.max(t,Math.floor(e.maxSize??Number.MAX_SAFE_INTEGER));return Math.max(t,Math.min(s,Math.max(0,Math.floor(i))))}function ur(i,e,t,s){let r=t;for(;r>0;){let n=e.map((a,c)=>({entry:a,index:c})).filter(({entry:a,index:c})=>s==="grow"?(a.grow??0)>0&&i[c]<(a.maxSize??Number.MAX_SAFE_INTEGER):(a.shrink??1)>0&&i[c]>(a.minSize??0));if(n.length===0)return;let o=n.reduce((a,{entry:c,index:h})=>a+(s==="grow"?c.grow??0:(c.shrink??1)*Math.max(1,i[h])),0),l=0;for(let{entry:a,index:c}of n){if(r<=0)break;let h=s==="grow"?a.grow??0:(a.shrink??1)*Math.max(1,i[c]),u=Math.max(1,Math.floor(r*h/o)),f=s==="grow"?(a.maxSize??Number.MAX_SAFE_INTEGER)-i[c]:i[c]-(a.minSize??0),d=Math.min(r,u,f);d<=0||(i[c]=i[c]+(s==="grow"?d:-d),r-=d,l+=d)}if(l===0)return}}function Qe(i,e,t,s){let r=i.map((l,a)=>No(l.basis===void 0||l.basis==="auto"?e[a]??0:l.basis,l));if(t===void 0)return r;let n=Math.max(0,Math.floor(t)-Math.max(0,i.length-1)*s),o=r.reduce((l,a)=>l+a,0);return o<n?ur(r,i,n-o,"grow"):o>n&&ur(r,i,o-n,"shrink"),r}var Ze=pt(),$t=class{value="";cursor=0;onSubmit;onEscape;focused=!1;pasteBuffer="";isInPaste=!1;killRing=new $e;lastAction=null;undoStack=new Ee;getValue(){return this.value}setValue(e){this.value=e,this.cursor=Math.min(this.cursor,e.length)}handleInput(e){if(e.includes("\x1B[200~")&&(this.isInPaste=!0,this.pasteBuffer="",e=e.replace("\x1B[200~","")),this.isInPaste){this.pasteBuffer+=e;let n=this.pasteBuffer.indexOf("\x1B[201~");if(n!==-1){let o=this.pasteBuffer.substring(0,n);this.handlePaste(o),this.isInPaste=!1;let l=this.pasteBuffer.substring(n+6);this.pasteBuffer="",l&&this.handleInput(l)}return}let t=ee();if(t.matches(e,"tui.select.cancel")){this.onEscape&&this.onEscape();return}if(t.matches(e,"tui.editor.undo")){this.undo();return}if(t.matches(e,"tui.input.submit")||e===`
96
- `){this.onSubmit&&this.onSubmit(this.value);return}if(t.matches(e,"tui.editor.deleteCharBackward")){this.handleBackspace();return}if(t.matches(e,"tui.editor.deleteCharForward")){this.handleForwardDelete();return}if(t.matches(e,"tui.editor.deleteWordBackward")){this.deleteWordBackwards();return}if(t.matches(e,"tui.editor.deleteWordForward")){this.deleteWordForward();return}if(t.matches(e,"tui.editor.deleteToLineStart")){this.deleteToLineStart();return}if(t.matches(e,"tui.editor.deleteToLineEnd")){this.deleteToLineEnd();return}if(t.matches(e,"tui.editor.yank")){this.yank();return}if(t.matches(e,"tui.editor.yankPop")){this.yankPop();return}if(t.matches(e,"tui.editor.cursorLeft")){if(this.lastAction=null,this.cursor>0){let n=this.value.slice(0,this.cursor),o=[...Ze.segment(n)],l=o[o.length-1];this.cursor-=l?l.segment.length:1}return}if(t.matches(e,"tui.editor.cursorRight")){if(this.lastAction=null,this.cursor<this.value.length){let n=this.value.slice(this.cursor),l=[...Ze.segment(n)][0];this.cursor+=l?l.segment.length:1}return}if(t.matches(e,"tui.editor.cursorLineStart")){this.lastAction=null,this.cursor=0;return}if(t.matches(e,"tui.editor.cursorLineEnd")){this.lastAction=null,this.cursor=this.value.length;return}if(t.matches(e,"tui.editor.cursorWordLeft")){this.moveWordBackwards();return}if(t.matches(e,"tui.editor.cursorWordRight")){this.moveWordForwards();return}let s=ot(e);if(s!==void 0){this.insertCharacter(s);return}[...e].some(n=>{let o=n.charCodeAt(0);return o<32||o===127||o>=128&&o<=159})||this.insertCharacter(e)}insertCharacter(e){(U(e)||this.lastAction!=="type-word")&&this.pushUndo(),this.lastAction="type-word",this.value=this.value.slice(0,this.cursor)+e+this.value.slice(this.cursor),this.cursor+=e.length}handleBackspace(){if(this.lastAction=null,this.cursor>0){this.pushUndo();let e=this.value.slice(0,this.cursor),t=[...Ze.segment(e)],s=t[t.length-1],r=s?s.segment.length:1;this.value=this.value.slice(0,this.cursor-r)+this.value.slice(this.cursor),this.cursor-=r}}handleForwardDelete(){if(this.lastAction=null,this.cursor<this.value.length){this.pushUndo();let e=this.value.slice(this.cursor),s=[...Ze.segment(e)][0],r=s?s.segment.length:1;this.value=this.value.slice(0,this.cursor)+this.value.slice(this.cursor+r)}}deleteToLineStart(){if(this.cursor===0)return;this.pushUndo();let e=this.value.slice(0,this.cursor);this.killRing.push(e,{prepend:!0,accumulate:this.lastAction==="kill"}),this.lastAction="kill",this.value=this.value.slice(this.cursor),this.cursor=0}deleteToLineEnd(){if(this.cursor>=this.value.length)return;this.pushUndo();let e=this.value.slice(this.cursor);this.killRing.push(e,{prepend:!1,accumulate:this.lastAction==="kill"}),this.lastAction="kill",this.value=this.value.slice(0,this.cursor)}deleteWordBackwards(){if(this.cursor===0)return;let e=this.lastAction==="kill";this.pushUndo();let t=this.cursor;this.moveWordBackwards();let s=this.cursor;this.cursor=t;let r=this.value.slice(s,this.cursor);this.killRing.push(r,{prepend:!0,accumulate:e}),this.lastAction="kill",this.value=this.value.slice(0,s)+this.value.slice(this.cursor),this.cursor=s}deleteWordForward(){if(this.cursor>=this.value.length)return;let e=this.lastAction==="kill";this.pushUndo();let t=this.cursor;this.moveWordForwards();let s=this.cursor;this.cursor=t;let r=this.value.slice(this.cursor,s);this.killRing.push(r,{prepend:!1,accumulate:e}),this.lastAction="kill",this.value=this.value.slice(0,this.cursor)+this.value.slice(s)}yank(){let e=this.killRing.peek();e&&(this.pushUndo(),this.value=this.value.slice(0,this.cursor)+e+this.value.slice(this.cursor),this.cursor+=e.length,this.lastAction="yank")}yankPop(){if(this.lastAction!=="yank"||this.killRing.length<=1)return;this.pushUndo();let e=this.killRing.peek()||"";this.value=this.value.slice(0,this.cursor-e.length)+this.value.slice(this.cursor),this.cursor-=e.length,this.killRing.rotate();let t=this.killRing.peek()||"";this.value=this.value.slice(0,this.cursor)+t+this.value.slice(this.cursor),this.cursor+=t.length,this.lastAction="yank"}pushUndo(){this.undoStack.push({value:this.value,cursor:this.cursor})}undo(){let e=this.undoStack.pop();e&&(this.value=e.value,this.cursor=e.cursor,this.lastAction=null)}moveWordBackwards(){this.cursor!==0&&(this.lastAction=null,this.cursor=It(this.value,this.cursor))}moveWordForwards(){this.cursor>=this.value.length||(this.lastAction=null,this.cursor=At(this.value,this.cursor))}handlePaste(e){this.lastAction=null,this.pushUndo();let t=e.replace(/\r\n/g,"").replace(/\r/g,"").replace(/\n/g,"").replace(/\t/g," ");this.value=this.value.slice(0,this.cursor)+t+this.value.slice(this.cursor),this.cursor+=t.length}invalidate(){}render(e){let s=e-2;if(s<=0)return["> "];let r="",n=this.cursor,o=y(this.value);if(o<s)r=this.value;else{let g=this.cursor===this.value.length?s-1:s,v=y(this.value.slice(0,this.cursor));if(g>0){let C=Math.floor(g/2),T=0;v<C?T=0:v>o-C?T=Math.max(0,o-g):T=Math.max(0,v-C),r=N(this.value,T,g,!0),n=N(this.value,T,Math.max(0,v-T),!0).length}else r="",n=0}let a=[...Ze.segment(r.slice(n))][0],c=r.slice(0,n),h=a?.segment??" ",u=r.slice(n+h.length),f=this.focused?Q:"",d=`\x1B[7m${h}\x1B[27m`,m=c+f+d+u,p=y(m),x=" ".repeat(Math.max(0,s-p));return["> "+m+x]}};var zo={alpha:"\u03B1",beta:"\u03B2",gamma:"\u03B3",delta:"\u03B4",epsilon:"\u03F5",varepsilon:"\u03B5",zeta:"\u03B6",eta:"\u03B7",theta:"\u03B8",vartheta:"\u03D1",iota:"\u03B9",kappa:"\u03BA",varkappa:"\u03F0",lambda:"\u03BB",mu:"\u03BC",nu:"\u03BD",xi:"\u03BE",pi:"\u03C0",varpi:"\u03D6",rho:"\u03C1",varrho:"\u03F1",sigma:"\u03C3",varsigma:"\u03C2",tau:"\u03C4",upsilon:"\u03C5",phi:"\u03D5",varphi:"\u03C6",chi:"\u03C7",psi:"\u03C8",omega:"\u03C9",Gamma:"\u0393",Delta:"\u0394",Theta:"\u0398",Lambda:"\u039B",Xi:"\u039E",Pi:"\u03A0",Sigma:"\u03A3",Upsilon:"\u03A5",Phi:"\u03A6",Psi:"\u03A8",Omega:"\u03A9",pm:"\xB1",mp:"\u2213",times:"\xD7",div:"\xF7",cdot:"\xB7",ast:"\u2217",star:"\u22C6",circ:"\u2218",bullet:"\u2022",oplus:"\u2295",ominus:"\u2296",otimes:"\u2297",oslash:"\u2298",odot:"\u2299",bigcirc:"\u25CB",dagger:"\u2020",ddagger:"\u2021",amalg:"\u2A3F",uplus:"\u228E",sqcap:"\u2293",sqcup:"\u2294",triangleleft:"\u25C1",triangleright:"\u25B7",wr:"\u2240",cap:"\u2229",cup:"\u222A",bigcap:"\u22C2",bigcup:"\u22C3",bigwedge:"\u22C0",bigvee:"\u22C1",bigsqcup:"\u2A06",biguplus:"\u2A04",bigoplus:"\u2A01",bigotimes:"\u2A02",bigodot:"\u2A00",setminus:"\u2216",in:"\u2208",notin:"\u2209",ni:"\u220B",subset:"\u2282",supset:"\u2283",subseteq:"\u2286",supseteq:"\u2287",sqsubset:"\u228F",sqsupset:"\u2290",sqsubseteq:"\u2291",sqsupseteq:"\u2292",prec:"\u227A",preceq:"\u227C",succ:"\u227B",succeq:"\u227D",ll:"\u226A",gg:"\u226B",le:"\u2264",leq:"\u2264",leqslant:"\u2264",ge:"\u2265",geq:"\u2265",geqslant:"\u2265",ne:"\u2260",neq:"\u2260",equiv:"\u2261",approx:"\u2248",sim:"\u223C",simeq:"\u2243",cong:"\u2245",asymp:"\u224D",doteq:"\u2250",propto:"\u221D",parallel:"\u2225",perp:"\u22A5",mid:"\u2223",vdash:"\u22A2",dashv:"\u22A3",models:"\u22A8",Vdash:"\u22A9",Vvdash:"\u22AA",nvdash:"\u22AC",nvDash:"\u22AD",forall:"\u2200",exists:"\u2203",nexists:"\u2204",neg:"\xAC",land:"\u2227",wedge:"\u2227",lor:"\u2228",vee:"\u2228",to:"\u2192",rightarrow:"\u2192",longrightarrow:"\u2192",leftarrow:"\u2190",longleftarrow:"\u2190",gets:"\u2190",leftrightarrow:"\u2194",longleftrightarrow:"\u2194",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",leftharpoonup:"\u21BC",leftharpoondown:"\u21BD",rightharpoonup:"\u21C0",rightharpoondown:"\u21C1",rightleftharpoons:"\u21CC",leftrightharpoons:"\u21CB",nearrow:"\u2197",searrow:"\u2198",swarrow:"\u2199",nwarrow:"\u2196",rightsquigarrow:"\u21DD",leadsto:"\u21DD",Rightarrow:"\u21D2",Longrightarrow:"\u21D2",Leftarrow:"\u21D0",Longleftarrow:"\u21D0",Leftrightarrow:"\u21D4",Longleftrightarrow:"\u21D4",implies:"\u21D2",iff:"\u21D4",mapsto:"\u21A6",longmapsto:"\u21A6",uparrow:"\u2191",downarrow:"\u2193",partial:"\u2202",nabla:"\u2207",int:"\u222B",iint:"\u222C",iiint:"\u222D",oint:"\u222E",sum:"\u2211",prod:"\u220F",coprod:"\u2210",infty:"\u221E",emptyset:"\u2205",varnothing:"\u2205",angle:"\u2220",therefore:"\u2234",because:"\u2235",aleph:"\u2135",beth:"\u2136",gimel:"\u2137",daleth:"\u2138",top:"\u22A4",bot:"\u22A5",triangle:"\u25B3",square:"\u25A1",lozenge:"\u25CA",checkmark:"\u2713",complement:"\u2201",wp:"\u2118",prime:"\u2032",ldots:"\u2026",dots:"\u2026",cdots:"\u22EF",vdots:"\u22EE",ddots:"\u22F1",ell:"\u2113",hbar:"\u210F",Im:"\u2111",Re:"\u211C",langle:"\u27E8",rangle:"\u27E9",vert:"|",lvert:"|",rvert:"|",Vert:"\u2016",lVert:"\u2016",rVert:"\u2016",lbrace:"{",rbrace:"}",backslash:"\\",lfloor:"\u230A",rfloor:"\u230B",lceil:"\u2308",rceil:"\u2309",colon:":"},Go=new Set(["arccos","arcsin","arctan","arg","cos","cosh","cot","coth","csc","deg","det","dim","exp","gcd","hom","inf","ker","lg","lim","liminf","limsup","ln","log","max","min","Pr","sec","sin","sinh","sup","tan","tanh"]),jo=new Set(["argmax","argmin","inf","injlim","lim","liminf","limsup","max","min","projlim","sup"]),Yo=new Set(["bigcap","bigcup","bigodot","bigoplus","bigotimes","bigsqcup","biguplus","bigvee","bigwedge","coprod","int","iint","iiint","oint","prod","sum"]),Xo=new Set(["Leftarrow","Leftrightarrow","Longleftarrow","Longleftrightarrow","Longrightarrow","Rightarrow","Vdash","Vvdash","approx","asymp","cong","dashv","doteq","downarrow","equiv","ge","geq","geqslant","gets","gg","hookleftarrow","hookrightarrow","iff","implies","in","leadsto","le","leftarrow","leftharpoondown","leftharpoonup","leftrightarrow","leftrightharpoons","leq","leqslant","ll","longleftarrow","longleftrightarrow","longmapsto","longrightarrow","mapsto","mid","models","ne","nearrow","neq","ni","notin","nvdash","nvDash","nwarrow","parallel","perp","prec","preceq","propto","rightharpoondown","rightharpoonup","rightleftharpoons","rightarrow","rightsquigarrow","searrow","sim","simeq","sqsubset","sqsubseteq","sqsupset","sqsupseteq","subset","subseteq","succ","succeq","supset","supseteq","swarrow","to","triangleleft","triangleright","twoheadleftarrow","twoheadrightarrow","uparrow","vdash"]),Qo={"<":"\u226E",">":"\u226F","=":"\u2260","\u2208":"\u2209","\u220B":"\u220C","\u2223":"\u2224","\u2225":"\u2226","\u223C":"\u2241","\u2243":"\u2244","\u2245":"\u2247","\u2248":"\u2249","\u2261":"\u2262","\u2264":"\u2270","\u2265":"\u2271","\u227A":"\u2280","\u227B":"\u2281","\u2282":"\u2284","\u2283":"\u2285","\u2286":"\u2288","\u2287":"\u2289","\u22A2":"\u22AC","\u22A8":"\u22AD","\u2194":"\u21AE","\u2190":"\u219A","\u2192":"\u219B","\u21D2":"\u21CF","\u21D0":"\u21CD","\u21D4":"\u21CE","\u227C":"\u22E0","\u227D":"\u22E1"},Zo={C:"\u2102",H:"\u210D",N:"\u2115",P:"\u2119",Q:"\u211A",R:"\u211D",Z:"\u2124"},Jo={0:"\u2070",1:"\xB9",2:"\xB2",3:"\xB3",4:"\u2074",5:"\u2075",6:"\u2076",7:"\u2077",8:"\u2078",9:"\u2079","+":"\u207A","-":"\u207B","=":"\u207C","(":"\u207D",")":"\u207E",a:"\u1D43",b:"\u1D47",c:"\u1D9C",d:"\u1D48",e:"\u1D49",f:"\u1DA0",g:"\u1D4D",h:"\u02B0",i:"\u2071",j:"\u02B2",k:"\u1D4F",l:"\u02E1",m:"\u1D50",n:"\u207F",o:"\u1D52",p:"\u1D56",r:"\u02B3",s:"\u02E2",t:"\u1D57",u:"\u1D58",v:"\u1D5B",w:"\u02B7",x:"\u02E3",y:"\u02B8",z:"\u1DBB"},el={0:"\u2080",1:"\u2081",2:"\u2082",3:"\u2083",4:"\u2084",5:"\u2085",6:"\u2086",7:"\u2087",8:"\u2088",9:"\u2089","+":"\u208A","-":"\u208B","=":"\u208C","(":"\u208D",")":"\u208E",a:"\u2090",e:"\u2091",h:"\u2095",i:"\u1D62",j:"\u2C7C",k:"\u2096",l:"\u2097",m:"\u2098",n:"\u2099",o:"\u2092",p:"\u209A",r:"\u1D63",s:"\u209B",t:"\u209C",u:"\u1D64",v:"\u1D65",x:"\u2093"},tl=new Set([",",":",";"," ",">","enspace","enskip","medspace","quad","qquad","thickspace","thinspace"]),sl=new Set(["!","negmedspace","negthickspace","negthinspace"]),fr="\0",il=new Set(["displaystyle","limits","nolimits","scriptstyle","scriptscriptstyle","textstyle"]),rl=new Set(["big","Big","bigg","Bigg","bigl","Bigl","biggl","Biggl","bigr","Bigr","biggr","Biggr"]),nl=new Set(["emph","mathcal","mathbf","mathfrak","mathit","mathrm","mathnormal","mathscr","mathsf","mathtt","mathup","mbox","overbrace","pmb","smash","substack","text","textbf","textit","textmd","textnormal","textrm","textsc","textsf","textsl","texttt","textup","underbrace","bm","boldsymbol"]),ol={acute:"\u0301",bar:"\u0305",breve:"\u0306",check:"\u030C",ddot:"\u0308",dot:"\u0307",grave:"\u0300",hat:"\u0302",mathring:"\u030A",overleftarrow:"\u20D6",overleftrightarrow:"\u20E1",overline:"\u0305",overrightarrow:"\u20D7",tilde:"\u0303",underline:"\u0332",vec:"\u20D7",widehat:"\u0302",widetilde:"\u0303"};function ll(i,e){let t="";for(let s of i){let r=e[s];if(r===void 0)return;t+=r}return t}function _e(i,e){i=i.trim();let t=e==="sub"?el:Jo,s=ll(i.replace(/\s*([=+-])\s*/g,"$1"),t);if(s!==void 0)return s;let r=e==="sub"?"_":"^";return Array.from(i).length===1||e==="sub"&&/^[A-Za-z]+$/.test(i)?`${r}${i}`:`${r}(${i})`}function al(i,e){i=i.trim(),e=e.trim();let t=/^[\p{L}\p{N}.]+$/u.test(i),s=/^[\p{N}.]+$/u.test(e)||Array.from(e).length===1;return`${t?i:`(${i})`}/${s?e:`(${e})`}`}function Et(i,e="\u221A"){return i=i.trim(),/^[\p{L}\p{N}.]+$/u.test(i)?`${e}${i}`:`${e}(${i})`}var dr="\u{F0004}",Se="\u{F0005}",cl=/(?<=[\p{L}\p{N})\]}\u{f0001}])\u{f0004}/gu,hl=/\u{f0005}(?=[\p{L}\p{N}√\u{f0000}])/gu;function Je(i){return i.replace(cl," ").replaceAll(dr,"").replace(hl," ").replaceAll(Se,"").split(`
97
- `).map(e=>e.replace(/[ \t]+/g," ").trim()).filter((e,t,s)=>e.length>0||t>0&&t<s.length-1).join(`
98
- `).trim()}var Ps="\u{F0000}",$s="\u{F0001}",ul=/\u{f0000}(\d+)\u{f0001}/gu,fl=/\u{f0000}(\d+)\u{f0001}$/u,Es="\u{F0002}";function ve(i,e,t=!1){let s=Math.max(0,e-y(i)),r=t?Math.floor(s/2):0;return`${" ".repeat(r)}${i}${" ".repeat(s-r)}`}function dl(i){if(i.length===0)return{lines:[""],width:0,baseline:0};let e=Math.max(...i.map(r=>r.baseline)),t=Math.max(...i.map(r=>r.lines.length-r.baseline-1)),s=[];for(let r=0;r<=e+t;r++){let n="";for(let o of i){let l=r-e+o.baseline;n+=l>=0&&l<o.lines.length?ve(o.lines[l]??"",o.width):" ".repeat(o.width)}s.push(n.trimEnd())}return{lines:s,width:i.reduce((r,n)=>r+n.width,0),baseline:e}}function Os(i,e){let t=[],s=0;for(let r of i.split(`
99
- `)){let n=[],o=0,l;for(let c of r.matchAll(ul)){let h=c.index,u=e[Number(c[1])];if(u){if(h>o){let f=r.slice(o,h),d=(l?f.trimStart():f).trimEnd(),m=l?.type==="matrix"&&/^\s/.test(f),p=u.type==="matrix"&&/\s$/.test(f),x=d?`${m?" ":""}${d}${p?" ":""}`:m||p?" ":"";n.push({lines:[x],width:y(x),baseline:0})}if(u.type==="fraction"){let f=Os(u.numerator,e),d=Os(u.denominator,e),m=Math.max(f.width,d.width,1),p=m+2;n.push({lines:[...f.lines.map(x=>ve(x,p,!0)),` ${"\u2500".repeat(m)} `,...d.lines.map(x=>ve(x,p,!0))],width:p,baseline:f.lines.length})}else if(u.type==="operator"){let f=Math.max(y(u.operator),u.lower===void 0?0:y(u.lower),u.upper===void 0?0:y(u.upper)),d=[];u.upper!==void 0&&d.push(`${ve(u.upper,f,!0)} `),d.push(`${ve(u.operator,f,!0)} `),u.lower!==void 0&&d.push(`${ve(u.lower,f,!0)} `),n.push({lines:d,width:f+1,baseline:u.upper===void 0?0:1})}else{let f=Math.max(0,...u.lines.map(d=>y(d)));n.push({lines:u.lines.map(d=>ve(d,f)),width:f,baseline:u.baseline})}o=h+c[0].length,l=u}}if(o<r.length){let c=r.slice(o),h=l?c.trimStart():c,u=l?.type==="matrix"&&/^\s/.test(c)?` ${h}`:h;n.push({lines:[u],width:y(u),baseline:0})}let a=dl(n);t.length===0&&(s=a.baseline),t.push(...a.lines)}return{lines:t,width:Math.max(0,...t.map(r=>y(r))),baseline:s}}var Bs=class i{source;layoutNodes;display;position=0;supported=!0;stackFractions=!0;constructor(e,t,s){this.source=e,this.layoutNodes=t,this.display=s}render(){let e=this.parseSequence();if(!(!this.supported||this.position!==this.source.length))return Je(e)}parseSequence(e){let t="";for(;this.position<this.source.length;){let s=this.source[this.position];if(e&&s===e)return this.position++,t;if(s==="}")return this.supported=!1,t;if(s==="{"){this.position++,t+=this.parseSequence("}");continue}if(s==="\\"){let r=this.parseCommand();r===fr?(t=t.trimEnd(),t.endsWith(Se)&&(t=t.slice(0,-Se.length))):t+=r;continue}if(s==="^"||s==="_"){this.position++,t=t.trimEnd();let r=_e(this.parseRequiredArgument(!1),s==="_"?"sub":"sup");t.endsWith(Se)?t=`${t.slice(0,-Se.length)}${r}${Se}`:t+=r;continue}if(/\s/.test(s)){t+=this.parseWhitespace();continue}if(s==="="||s==="<"||s===">"){t=`${t.trimEnd()} ${s} `,this.position++;continue}if(s==="&"){this.position++;continue}if(s==="~"){this.position++,t+=" ";continue}if(s==="."){let r=fl.exec(t),n=r?this.layoutNodes[Number(r[1])]:void 0;if(n?.type==="matrix"){let o=n.lines.length-1;n.lines[o]=`${n.lines[o]??""}${s}`,this.position++;continue}}t+=s,this.position++}return e&&(this.supported=!1),t}parseWhitespace(){for(;this.position<this.source.length&&/\s/.test(this.source[this.position]??"");)this.position++;return" "}parseCommand(){if(this.position++,this.position>=this.source.length)return this.supported=!1,"";let e="",t=this.source[this.position]??"";if(/[A-Za-z]/.test(t)){let n=this.position;for(;this.position<this.source.length&&/[A-Za-z]/.test(this.source[this.position]??"");)this.position++;e=this.source.slice(n,this.position)}else e=t,this.position++;if(e==="\\")return`
100
- `;if(tl.has(e))return" ";if(sl.has(e))return fr;if(il.has(e))return"";if(e==="{"||e==="}"||e==="$"||e==="%"||e==="#"||e==="_"||e==="&")return e;if(e==="|")return"\u2016";if(e==="not"){let n=this.parseRequiredArgument(!1).trim(),o=Qo[n];if(o!==void 0)return` ${o} `;let l=Array.from(n);return l.length===0?(this.supported=!1,""):` ${l[0]}\u0338${l.slice(1).join("")} `}if(jo.has(e))return this.parseOperator(e,"bracket",!0,!0);let s=zo[e];if(s!==void 0)return Yo.has(e)?this.parseOperator(s,"script",!0):e==="cdot"||e==="times"||Xo.has(e)?` ${s} `:s;if(Go.has(e))return`${dr}${e}${Se}`;if(rl.has(e))return"";if(e==="left"||e==="middle"||e==="right")return this.source[this.position]==="."&&this.position++,"";if(e==="frac"||e==="dfrac"||e==="tfrac"){let n=this.display&&this.stackFractions&&e!=="tfrac",o=this.parseRequiredArgument(!n),l=this.parseRequiredArgument(!n);if(n){let a=this.layoutNodes.push({type:"fraction",numerator:Je(o),denominator:Je(l)})-1;return`${Ps}${a}${$s}`}return al(o,l)}if(e==="sqrt"){let n=this.parseOptionalArgument()?.trim(),o=this.parseRequiredArgument();return n===void 0||n==="2"?Et(o):n==="3"?Et(o,"\u221B"):n==="4"?Et(o,"\u221C"):`${_e(n,"sup")}${Et(o)}`}if(e==="boxed"||e==="fbox")return`[${this.parseRequiredArgument().trim()}]`;if(e==="binom"||e==="dbinom"||e==="tbinom")return`(${this.parseRequiredArgument()} choose ${this.parseRequiredArgument()})`;let r=ol[e];if(r!==void 0){let n=this.parseRequiredArgument();return Array.from(n).length===1?`${n}${r}`:`${e}(${n})`}if(e==="mathbb"){let n=this.parseRequiredArgument();return Array.from(n,o=>Zo[o]??o).join("")}if(e==="operatorname"){let n=this.source[this.position]==="*";n&&this.position++;let o=Je(this.parseRequiredArgument()).trim();return this.parseOperator(o,"bracket",n,!0)}if(e==="mod"||e==="bmod")return" mod ";if(e==="pmod"||e==="pod"){let n=this.parseRequiredArgument().trim();return e==="pmod"?` (mod ${n})`:` (${n})`}if(e==="overset"||e==="stackrel"){let n=this.parseRequiredArgument();return`${this.parseRequiredArgument().trim()}${_e(n,"sup")}`}if(e==="underset"){let n=this.parseRequiredArgument();return`${this.parseRequiredArgument().trim()}${_e(n,"sub")}`}if(nl.has(e)){let n=this.parseRequiredArgument();return e.startsWith("text")||e==="mbox"?n:n.trim()}return e==="begin"?this.parseEnvironment():e==="end"?(this.supported=!1,""):(this.supported=!1,`\\${e}`)}parseOperator(e,t,s,r=!1){let n=s,o=this.position;for(;o<this.source.length&&/[ \t]/.test(this.source[o]??"");)o++;let l=/^\\(limits|nolimits)(?![A-Za-z])/.exec(this.source.slice(o));l&&(n=l[1]==="limits",this.position=o+l[0].length);let a,c;for(;;){let u=this.position;for(;u<this.source.length&&/[ \t]/.test(this.source[u]??"");)u++;let f=this.source[u];if(f!=="_"&&f!=="^")break;this.position=u+1;let d=Je(this.parseRequiredArgument(!1)).replaceAll(" ","");f==="_"?(a!==void 0&&(this.supported=!1),a=d):(c!==void 0&&(this.supported=!1),c=d)}if(this.display&&n&&(a!==void 0||c!==void 0)){let u=this.layoutNodes.push({type:"operator",operator:e,lower:a,upper:c})-1;return`${Ps}${u}${$s}`}let h=e;return a!==void 0&&(h+=t==="bracket"?`[${a}]`:_e(a,"sub")),c!==void 0&&(h+=_e(c,"sup")),r?` ${h} `:h}parseRequiredArgument(e=!0){let t=this.stackFractions;this.stackFractions=t&&e;let s=this.parseRequiredArgumentValue();return this.stackFractions=t,s}parseRequiredArgumentValue(){for(;this.position<this.source.length&&/[ \t]/.test(this.source[this.position]??"");)this.position++;if(this.position>=this.source.length)return this.supported=!1,"";if(this.source[this.position]==="{")return this.position++,this.parseSequence("}");if(this.source[this.position]==="\\")return this.parseCommand();let e=this.source[this.position]??"";return this.position++,e}parseOptionalArgument(){for(;this.position<this.source.length&&/[ \t]/.test(this.source[this.position]??"");)this.position++;if(this.source[this.position]!=="[")return;let e=this.source.indexOf("]",this.position+1);if(e<0){this.supported=!1;return}let t=this.source.slice(this.position+1,e);return this.position=e+1,this.renderNested(t)}readRawGroup(){for(;this.position<this.source.length&&/[ \t]/.test(this.source[this.position]??"");)this.position++;if(this.source[this.position]!=="{"){this.supported=!1;return}let e=++this.position,t=1;for(;this.position<this.source.length;){let s=this.source[this.position];if(s==="\\"){this.position+=2;continue}if(s==="{"&&t++,s==="}"&&t--,t===0){let r=this.source.slice(e,this.position);return this.position++,r}this.position++}this.supported=!1}splitEnvironmentRows(e){return e.split(/\\\\(?:\[[^\]\n]*\])?/)}parseEnvironment(){let e=this.readRawGroup();if(!e)return"";let t=`\\end{${e}}`,s=this.source.indexOf(t,this.position);if(s<0)return this.supported=!1,"";let r=this.source.slice(this.position,s);if(this.position=s+t.length,e==="equation"||e==="equation*"||e==="displaymath")return this.renderNested(r).trim();if(e==="aligned"||e==="align"||e==="align*"||e==="alignedat"||e==="alignat"||e==="alignat*"||e==="gather"||e==="gathered"||e==="multline"||e==="multline*"||e==="split"){let n=["alignedat","alignat","alignat*"].includes(e),o=n?r.replace(/^\s*\{[^}]*\}/,""):r;return this.splitEnvironmentRows(o).map(l=>{let a=l.split("&"),c=n?Array.from({length:Math.ceil(a.length/2)},(h,u)=>a.slice(u*2,u*2+2).join("")).join(" "):a.join("");return this.renderNested(c).trim()}).filter(Boolean).join(`
101
- `)}if(e==="cases"||e==="cases*"){let n=this.splitEnvironmentRows(r).map(o=>o.split("&").map(l=>this.renderNested(l,!1).trim())).filter(o=>o.some(Boolean));return n.map((o,l)=>{let a=(o[0]??"").replace(/,\s*$/,""),c=o[1]??"",h=l===0?"\u23A7":l===n.length-1?"\u23A9":"\u23A8",u=/^(?:if|when|for|otherwise)\b/i.test(c)?" ":" if ";return`${h} ${a}${c?`${u}${c}`:""}`}).join(`
102
- `)}if(["array","matrix","smallmatrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix"].includes(e)){let n=e==="array"?r.replace(/^\s*\{[^}]*\}/,""):r;return this.renderMatrix(e,n)}return this.supported=!1,r}renderMatrix(e,t){let s=this.splitEnvironmentRows(t).map(c=>c.split("&").map(h=>this.renderNested(h,!1).trim())).filter(c=>c.some(Boolean)),r=Math.max(0,...s.map(c=>c.length)),n=Array.from({length:r},(c,h)=>Math.max(0,...s.map(u=>y(u[h]??"")))),o=s.map(c=>Array.from({length:r},(h,u)=>{let f=c[u]??"";return`${f}${Es.repeat(Math.max(0,(n[u]??0)-y(f)))}`}).join(" \u2502 ")),l;if(e==="array"||e==="matrix"||e==="smallmatrix")l=o;else{let h={pmatrix:["\u239B","\u239E","\u239C","\u239F","\u239D","\u23A0"],bmatrix:["\u23A1","\u23A4","\u23A2","\u23A5","\u23A3","\u23A6"],Bmatrix:["\u23A7","\u23AB","\u23A8","\u23AC","\u23A9","\u23AD"],vmatrix:["\u2502","\u2502","\u2502","\u2502","\u2502","\u2502"],Vmatrix:["\u2551","\u2551","\u2551","\u2551","\u2551","\u2551"]}[e];if(!h)return this.supported=!1,o.join(`
103
- `);l=o.map((u,f)=>{let d=f===0?h[0]:f===o.length-1?h[4]:h[2],m=f===0?h[1]:f===o.length-1?h[5]:h[3];return`${d} ${u} ${m}`})}if(l.length<=1)return l[0]??"";let a=this.layoutNodes.push({type:"matrix",lines:l,baseline:0})-1;return`${Ps}${a}${$s}`}renderNested(e,t=!0){let s=new i(e,this.layoutNodes,this.display&&t).render();return s===void 0?(this.supported=!1,e):s}};function Ot(i,e={}){let t=[],s=new Bs(i,t,e.display===!0).render();if(s===void 0)return;if(t.length===0)return s.replaceAll(Es," ");let r=Os(s,t).lines,n=Math.min(...r.filter(o=>o.trim()).map(o=>o.length-o.trimStart().length));return r.map(o=>o.slice(n).trimEnd()).join(`
104
- `).trimEnd().replaceAll(Es," ")}var pl=/^(~~)(?=[^\s~])((?:\\.|[^\\])*?(?:\\.|[^\s~\\]))\1(?=[^~]|$)/,_s=class extends Me{del(e){let t=pl.exec(e);if(!t)return;let s=t[2];return{type:"del",raw:t[0],text:s,tokens:this.lexer.inlineTokens(s)}}};function ml(i,e){let t=0;for(let s=e-1;s>=0&&i[s]==="\\";s--)t++;return t%2===1}function gl(i,e,t){let s=i.indexOf(e,t);for(;s>=0&&ml(i,s);)s=i.indexOf(e,s+e.length);return s}function pr(i){return/\\[A-Za-z]+|[_^=+*/<>()[\]|±≤≥≠≈∈→⇒∞∫∑√-]/.test(i)}function xl(i){let e="",t="";if(i.startsWith("$$"))e="$$",t="$$";else if(i.startsWith("\\("))e="\\(",t="\\)";else if(i.startsWith("\\["))e="\\[",t="\\]";else if(i.startsWith("$")&&!/^\$\s/.test(i))e="$",t="$";else return;let s=gl(i,t,e.length);if(s>=0&&e==="$"&&(/\s$/.test(i.slice(e.length,s))||/^\d/.test(i.slice(s+1))||/^[A-Z_][A-Z0-9_]*(?:[^A-Za-z0-9_\s])?$/.test(i.slice(e.length,s))&&/^[A-Za-z_][A-Za-z0-9_]*/.test(i.slice(s+1))||i.slice(e.length,s).includes("`")))return;if(s<0){let o=i.slice(e.length);return e.startsWith("\\")||pr(o)?{type:"latex",raw:i,text:o,pending:!0}:void 0}let r=i.slice(e.length,s);return!r||r.includes(`
105
- `)?void 0:{type:"latex",raw:i.slice(0,s+t.length),text:r}}function bl(i){let e=/^ {0,3}\$\$[ \t]*(?:\n)?([\s\S]*?)\$\$[ \t]*(?:\n|$)/.exec(i);if(e?.[1])return{type:"latexBlock",raw:e[0],text:e[1].trim()};let t=/^ {0,3}\\\[[ \t]*(?:\n)?([\s\S]*?)\\\][ \t]*(?:\n|$)/.exec(i);if(t?.[1])return{type:"latexBlock",raw:t[0],text:t[1].trim()};let s=/^ {0,3}\\\[[ \t]*(?:\n)?([\s\S]*)$/.exec(i);if(s)return{type:"latexBlock",raw:s[0],text:s[1],pending:!0};let r=/^ {0,3}\$\$[ \t]*(?:\n)?([\s\S]*)$/.exec(i);if(r?.[1]&&pr(r[1]))return{type:"latexBlock",raw:r[0],text:r[1],pending:!0}}var wl=[{name:"latexBlock",level:"block",start(i){let e=/(?:^|\n) {0,3}(?:\$\$|\\\[)/.exec(i);return e?e.index+(e[0].startsWith(`
106
- `)?1:0):void 0},tokenizer:bl},{name:"latex",level:"inline",start(i){let e=[i.indexOf("$"),i.indexOf("\\("),i.indexOf("\\[")].filter(t=>t>=0);return e.length>0?Math.min(...e):void 0},tokenizer:xl}];function Ws(i){let e=i[i.length-1];if(e?.type==="list"){Ws(e.items[e.items.length-1]?.tokens??[]);return}if(e?.type==="blockquote"){Ws(e.tokens??[]);return}if(e?.type!=="code")return;let t=/^(`{3,}|~{3,})/.exec(e.raw)?.[1],s=e.raw.split(`
107
- `).pop();!t||!s||s.length>=t.length||s!==t[0]?.repeat(s.length)||(e.text=e.text.slice(0,-s.length).replace(/\n$/,""))}var Fs=new vt;Fs.setOptions({tokenizer:new _s});Fs.use({extensions:[...wl]});var Ds=class{text;paddingX;paddingY;defaultTextStyle;theme;options;defaultStylePrefix;cachedText;cachedWidth;cachedLines;constructor(e,t,s,r,n,o){this.text=e,this.paddingX=t,this.paddingY=s,this.theme=r,this.defaultTextStyle=n,this.options=o?{...o}:{}}setText(e){this.text=e,this.invalidate()}invalidate(){this.cachedText=void 0,this.cachedWidth=void 0,this.cachedLines=void 0}render(e){if(this.cachedLines&&this.cachedText===this.text&&this.cachedWidth===e)return this.cachedLines;let t=Math.max(1,e-this.paddingX*2),s=this.options.transform?.(this.text,t)??this.text;if(!s||s.trim()===""){let p=[];return this.cachedText=this.text,this.cachedWidth=e,this.cachedLines=p,p}let r=s.replace(/\t/g," "),n=Fs.lexer(r);Ws(n);let o=[];for(let p=0;p<n.length;p++){let x=n[p],S=n[p+1],g=this.renderToken(x,t,S?.type);for(let v of g)o.push(v)}let l=[];for(let p of o)if(F(p))l.push(p);else for(let x of ie(p,t))l.push(x);let a=" ".repeat(this.paddingX),c=" ".repeat(this.paddingX),h=this.defaultTextStyle?.bgColor,u=[];for(let p of l){if(F(p)){u.push(p);continue}let x=a+p+c;if(h)u.push(pe(x,e,h));else{let S=y(x),g=Math.max(0,e-S);u.push(x+" ".repeat(g))}}let f=" ".repeat(e),d=[];for(let p=0;p<this.paddingY;p++){let x=h?pe(f,e,h):f;d.push(x)}let m=d.concat(u,d);return this.cachedText=this.text,this.cachedWidth=e,this.cachedLines=m,m.length>0?m:[""]}applyDefaultStyle(e){if(!this.defaultTextStyle)return e;let t=e;return this.defaultTextStyle.color&&(t=this.defaultTextStyle.color(t)),this.defaultTextStyle.bold&&(t=this.theme.bold(t)),this.defaultTextStyle.italic&&(t=this.theme.italic(t)),this.defaultTextStyle.strikethrough&&(t=this.theme.strikethrough(t)),this.defaultTextStyle.underline&&(t=this.theme.underline(t)),t}getDefaultStylePrefix(){if(!this.defaultTextStyle)return"";if(this.defaultStylePrefix!==void 0)return this.defaultStylePrefix;let e="\0",t=e;this.defaultTextStyle.color&&(t=this.defaultTextStyle.color(t)),this.defaultTextStyle.bold&&(t=this.theme.bold(t)),this.defaultTextStyle.italic&&(t=this.theme.italic(t)),this.defaultTextStyle.strikethrough&&(t=this.theme.strikethrough(t)),this.defaultTextStyle.underline&&(t=this.theme.underline(t));let s=t.indexOf(e);return this.defaultStylePrefix=s>=0?t.slice(0,s):"",this.defaultStylePrefix}getStylePrefix(e){let s=e("\0"),r=s.indexOf("\0");return r>=0?s.slice(0,r):""}getDefaultInlineStyleContext(){return{applyText:e=>this.applyDefaultStyle(e),stylePrefix:this.getDefaultStylePrefix()}}renderToken(e,t,s,r){let n=[];switch(e.type){case"heading":{let o=e.depth,l=`${"#".repeat(o)} `,a;o===1?a=f=>this.theme.heading(this.theme.bold(this.theme.underline(f))):a=f=>this.theme.heading(this.theme.bold(f));let c={applyText:a,stylePrefix:this.getStylePrefix(a)},h=this.renderInlineTokens(e.tokens||[],c),u=o>=3?a(l)+h:h;n.push(u),s&&s!=="space"&&n.push("");break}case"paragraph":{let o=this.renderInlineTokens(e.tokens||[],r);n.push(o),s&&s!=="list"&&s!=="space"&&n.push("");break}case"text":n.push(this.renderInlineTokens([e],r));break;case"latexBlock":{let o=e,l=!o.pending&&this.options.renderLatex!==!1?Ot(o.text,{display:!0})??o.raw.trim():o.raw.trim();for(let a of l.split(`
108
- `))n.push(this.applyDefaultStyle(a));s&&s!=="space"&&n.push("");break}case"code":{let o=this.theme.codeBlockIndent??" ";if(n.push(this.theme.codeBlockBorder(`\`\`\`${e.lang||""}`)),this.theme.highlightCode){let l=this.theme.highlightCode(e.text,e.lang);for(let a of l)n.push(`${o}${a}`)}else{let l=e.text.split(`
109
- `);for(let a of l)n.push(`${o}${this.theme.codeBlock(a)}`)}n.push(this.theme.codeBlockBorder("```")),s&&s!=="space"&&n.push("");break}case"list":{let o=this.renderList(e,0,t,r);n.push(...o);break}case"table":{let o=this.renderTable(e,t,s,r);n.push(...o);break}case"blockquote":{let o=d=>this.theme.quote(this.theme.italic(d)),l=this.getStylePrefix(o),a=d=>{if(!l)return o(d);let m=d.replace(/\x1b\[0m/g,`\x1B[0m${l}`);return o(m)},c=Math.max(1,t-2),h={applyText:d=>d,stylePrefix:l},u=e.tokens||[],f=[];for(let d=0;d<u.length;d++){let m=u[d],p=u[d+1];f.push(...this.renderToken(m,c,p?.type,h))}for(;f.length>0&&f[f.length-1]==="";)f.pop();for(let d of f){let m=a(d),p=ie(m,c);for(let x of p)n.push(this.theme.quoteBorder("\u2502 ")+x)}s&&s!=="space"&&n.push("");break}case"hr":n.push(this.theme.hr("\u2500".repeat(Math.min(t,80)))),s&&s!=="space"&&n.push("");break;case"html":"raw"in e&&typeof e.raw=="string"&&n.push(this.applyDefaultStyle(e.raw.trim()));break;case"space":n.push("");break;default:"text"in e&&typeof e.text=="string"&&n.push(e.text)}return n}renderInlineTokens(e,t){let s="",r=t??this.getDefaultInlineStyleContext(),{applyText:n,stylePrefix:o}=r,l=a=>a.split(`
110
- `).map(h=>n(h)).join(`
111
- `);for(let a of e)switch(a.type){case"latex":{let c=a,h=!c.pending&&this.options.renderLatex!==!1?Ot(c.text)??c.raw:c.raw;s+=l(h);break}case"escape":s+=l(this.options.preserveBackslashEscapes?a.raw:a.text);break;case"text":a.tokens&&a.tokens.length>0?s+=this.renderInlineTokens(a.tokens,r):s+=l(a.text);break;case"paragraph":s+=this.renderInlineTokens(a.tokens||[],r);break;case"strong":{let c=this.renderInlineTokens(a.tokens||[],r);s+=this.theme.bold(c)+o;break}case"em":{let c=this.renderInlineTokens(a.tokens||[],r);s+=this.theme.italic(c)+o;break}case"codespan":s+=this.theme.code(a.text)+o;break;case"link":{let c=this.renderInlineTokens(a.tokens||[],r),h=this.theme.link(this.theme.underline(c));if(de().hyperlinks)s+=Jt(h,a.href)+o;else{let u=a.href.startsWith("mailto:")?a.href.slice(7):a.href;a.text===a.href||a.text===u?s+=h+o:s+=h+this.theme.linkUrl(` (${a.href})`)+o}break}case"br":s+=`
112
- `;break;case"del":{let c=this.renderInlineTokens(a.tokens||[],r);s+=this.theme.strikethrough(c)+o;break}case"html":"raw"in a&&typeof a.raw=="string"&&(s+=l(a.raw));break;default:"text"in a&&typeof a.text=="string"&&(s+=l(a.text))}for(;o&&s.endsWith(o);)s=s.slice(0,-o.length);return s}getOrderedListMarker(e){let t=/^(?: {0,3})(\d{1,9}[.)])[ \t]+/.exec(e.raw);return t?`${t[1]} `:void 0}getUnorderedListMarker(e){let t=/^(?: {0,3})([-+*])(?:[ \t]+|(?=\r?\n|$))/.exec(e.raw);return t?`${t[1]} `:void 0}renderList(e,t,s,r){let n=[],o=" ".repeat(t),l=typeof e.start=="number"?e.start:1;for(let a=0;a<e.items.length;a++){let c=e.items[a],h=a===e.items.length-1,u=e.ordered?this.options.preserveOrderedListMarkers?this.getOrderedListMarker(c)??`${l+a}. `:`${l+a}. `:this.options.preserveOrderedListMarkers?this.getUnorderedListMarker(c)??"- ":"- ",f=c.task?`[${c.checked?"x":" "}] `:"",d=u+f,m=o+this.theme.listBullet(d),p=o+" ".repeat(y(d)),x=Math.max(1,s-y(m)),S=!1;for(let g of c.tokens){if(g.type==="list"){n.push(...this.renderList(g,t+1,s,r)),S=!0;continue}let v=this.renderToken(g,x,void 0,r);for(let C of v)for(let T of ie(C,x)){let w=S?p:m;n.push(w+T),S=!0}}S||n.push(m),e.loose&&!h&&n.push("")}return n}getLongestWordWidth(e,t){let s=e.split(/\s+/).filter(n=>n.length>0),r=0;for(let n of s)r=Math.max(r,y(n));return t===void 0?r:Math.min(r,t)}wrapCellText(e,t){return ie(e,Math.max(1,t))}renderTable(e,t,s,r){let n=[],o=e.header.length;if(o===0)return n;let l=3*o+1,a=t-l;if(a<o){let w=e.raw?ie(e.raw,t):[];return s&&s!=="space"&&w.push(""),w}let c=30,h=[],u=[];for(let w=0;w<o;w++){let R=this.renderInlineTokens(e.header[w].tokens||[],r);h[w]=y(R),u[w]=Math.max(1,this.getLongestWordWidth(R,c))}for(let w of e.rows)for(let R=0;R<w.length;R++){let M=this.renderInlineTokens(w[R].tokens||[],r);h[R]=Math.max(h[R]||0,y(M)),u[R]=Math.max(u[R]||1,this.getLongestWordWidth(M,c))}let f=u,d=f.reduce((w,R)=>w+R,0);if(d>a){f=new Array(o).fill(1);let w=a-o;if(w>0){let R=u.reduce((k,A)=>k+Math.max(0,A-1),0),M=u.map(k=>{let A=Math.max(0,k-1);return R>0?Math.floor(A/R*w):0});for(let k=0;k<o;k++)f[k]+=M[k]??0;let P=M.reduce((k,A)=>k+A,0),b=w-P;for(let k=0;b>0&&k<o;k++)f[k]++,b--}d=f.reduce((R,M)=>R+M,0)}let m=h.reduce((w,R)=>w+R,0)+l,p;if(m<=t)p=h.map((w,R)=>Math.max(w,f[R]));else{let w=h.reduce((b,k,A)=>b+Math.max(0,k-f[A]),0),R=Math.max(0,a-d);p=f.map((b,k)=>{let A=h[k],B=Math.max(0,A-b),D=0;return w>0&&(D=Math.floor(B/w*R)),b+D});let M=p.reduce((b,k)=>b+k,0),P=a-M;for(;P>0;){let b=!1;for(let k=0;k<o&&P>0;k++)p[k]<h[k]&&(p[k]++,P--,b=!0);if(!b)break}}let x=p.map(w=>"\u2500".repeat(w));n.push(`\u250C\u2500${x.join("\u2500\u252C\u2500")}\u2500\u2510`);let S=e.header.map((w,R)=>{let M=this.renderInlineTokens(w.tokens||[],r);return this.wrapCellText(M,p[R])}),g=Math.max(...S.map(w=>w.length));for(let w=0;w<g;w++){let R=S.map((M,P)=>{let b=M[w]||"",k=b+" ".repeat(Math.max(0,p[P]-y(b)));return this.theme.bold(k)});n.push(`\u2502 ${R.join(" \u2502 ")} \u2502`)}let C=`\u251C\u2500${p.map(w=>"\u2500".repeat(w)).join("\u2500\u253C\u2500")}\u2500\u2524`;n.push(C);for(let w=0;w<e.rows.length;w++){let M=e.rows[w].map((b,k)=>{let A=this.renderInlineTokens(b.tokens||[],r);return this.wrapCellText(A,p[k])}),P=Math.max(...M.map(b=>b.length));for(let b=0;b<P;b++){let k=M.map((A,B)=>{let D=A[b]||"";return D+" ".repeat(Math.max(0,p[B]-y(D)))});n.push(`\u2502 ${k.join(" \u2502 ")} \u2502`)}w<e.rows.length-1&&n.push(C)}let T=p.map(w=>"\u2500".repeat(w));return n.push(`\u2514\u2500${T.join("\u2500\u2534\u2500")}\u2500\u2518`),s&&s!=="space"&&n.push(""),n}};var et=class extends ce{child;followEnd;primary;overscroll;scrollbarStyle;currentScrollbar;scrollbarHideDelayMs;currentScrollTop=0;contentHeight=0;currentViewportHeight=0;followingEnd;requestRenderCallback;transientScrollbarVisible=!1;scrollbarActive=!1;scrollbarHideTimer;constructor(e,t={}){if(super(),t.axis!==void 0&&t.axis!=="vertical")throw new Error(`Unsupported ScrollView axis: ${t.axis}`);this.child=e,this.children.push(e),this.followEnd=(t.follow??"none")==="end",this.followingEnd=this.followEnd,this.primary=t.primary??!1,this.overscroll=t.overscroll??"chain",this.currentScrollbar=t.scrollbar??"hidden",this.scrollbarStyle=t.scrollbarStyle??(s=>`\x1B[100m${s}\x1B[49m`),this.scrollbarHideDelayMs=Math.max(0,Math.floor(t.scrollbarHideDelayMs??1e3))}get scrollTop(){return this.currentScrollTop}get isFollowingEnd(){return this.followingEnd}get viewportHeight(){return this.currentViewportHeight}get scrollbar(){return this.currentScrollbar}get isScrollbarVisible(){return this.scrollbar==="always"?this.currentViewportHeight>0:this.scrollbar==="auto"&&this.contentHeight>this.currentViewportHeight&&this.transientScrollbarVisible}setScrollbar(e){e!==this.currentScrollbar&&(this.currentScrollbar=e,e!=="auto"?this.hideTransientScrollbar():this.scrollbarActive&&this.markScrollbarActivity(),this.requestRenderCallback?.())}getContentWidth(e){return this.scrollbar==="always"&&e>1?e-1:e}markScrollbarActivity(){this.scrollbar!=="auto"||this.contentHeight<=this.currentViewportHeight||(this.transientScrollbarVisible=!0,this.scrollbarHideTimer&&(clearTimeout(this.scrollbarHideTimer),this.scrollbarHideTimer=void 0),!this.scrollbarActive&&(this.scrollbarHideTimer=setTimeout(()=>{this.scrollbarHideTimer=void 0,this.transientScrollbarVisible=!1,this.requestRenderCallback?.()},this.scrollbarHideDelayMs),this.scrollbarHideTimer.unref()))}hideTransientScrollbar(){this.transientScrollbarVisible=!1,this.scrollbarHideTimer&&(clearTimeout(this.scrollbarHideTimer),this.scrollbarHideTimer=void 0)}setScrollbarActive(e){e!==this.scrollbarActive&&(this.scrollbarActive=e,this.markScrollbarActivity())}scrollTo(e){let t=Number.isFinite(e)?Math.trunc(e):this.currentScrollTop,s=Math.max(0,this.contentHeight-this.currentViewportHeight),r=Math.max(0,Math.min(s,t));r!==this.currentScrollTop&&(this.currentScrollTop=r,this.followingEnd=this.followEnd&&r===s,this.markScrollbarActivity(),this.requestRenderCallback?.())}scrollBy(e){let t=Number.isFinite(e)?Math.trunc(e):0;if(t===0)return 0;let s=Math.max(0,this.contentHeight-this.currentViewportHeight),r=this.followingEnd?s:this.currentScrollTop,n=Math.max(0,Math.min(s,r+t)),o=n-r;return this.currentScrollTop=n,this.followingEnd=this.followEnd&&n===s,o!==0&&(this.markScrollbarActivity(),this.requestRenderCallback?.()),t-o}scrollToStart(){let e=this.currentScrollTop!==0||this.followingEnd!==(this.followEnd&&this.contentHeight<=this.currentViewportHeight);this.currentScrollTop=0,this.followingEnd=this.followEnd&&this.contentHeight<=this.currentViewportHeight,e&&(this.markScrollbarActivity(),this.requestRenderCallback?.())}scrollToEnd(){let e=Math.max(0,this.contentHeight-this.currentViewportHeight),t=this.currentScrollTop!==e||this.followingEnd!==this.followEnd;this.currentScrollTop=e,this.followingEnd=this.followEnd,t&&(this.markScrollbarActivity(),this.requestRenderCallback?.())}updateLayout(e,t,s){this.contentHeight=Math.max(0,Math.floor(e)),this.currentViewportHeight=Math.max(0,Math.floor(t)),this.requestRenderCallback=s;let r=Math.max(0,this.contentHeight-this.currentViewportHeight);this.followingEnd?this.currentScrollTop=r:this.currentScrollTop=Math.max(0,Math.min(this.currentScrollTop,r)),this.followEnd&&this.currentScrollTop===r&&(this.followingEnd=!0),this.contentHeight<=this.currentViewportHeight&&this.hideTransientScrollbar()}addChild(e){throw new Error("ScrollView has exactly one child")}removeChild(e){throw new Error("ScrollView child cannot be removed")}clear(){throw new Error("ScrollView child cannot be cleared")}render(e){let t=this.getContentWidth(e),s=this.child.render(t);return t===e?s:s.map(r=>`${r} `)}[Be](){return{type:"scroll",component:this.child,state:this}}};var Ns=class{lines;constructor(e=1){this.lines=e}setLines(e){this.lines=e}invalidate(){}render(e){let t=[];for(let s=0;s<this.lines;s++)t.push("");return t}};var Ks=class{text;paddingX;paddingY;constructor(e,t=0,s=0){this.text=e,this.paddingX=t,this.paddingY=s}invalidate(){}render(e){let t=[],s=" ".repeat(e);for(let m=0;m<this.paddingY;m++)t.push(s);let r=Math.max(1,e-this.paddingX*2),n=this.text,o=this.text.indexOf(`
113
- `);o!==-1&&(n=this.text.substring(0,o));let l=X(n,r),a=" ".repeat(this.paddingX),c=" ".repeat(this.paddingX),h=a+l+c,u=y(h),f=Math.max(0,e-u),d=h+" ".repeat(f);t.push(d);for(let m=0;m<this.paddingY;m++)t.push(s);return t}};var yl=1e3,Bt=class{entries=[];nextId=0;requestRender;constructor(e){this.requestRender=e}flash(e,t=yl){let s=this.nextId++,r=setTimeout(()=>{let n=this.entries.findIndex(o=>o.id===s);n!==-1&&(this.entries.splice(n,1),this.requestRender())},Math.max(0,t));r.unref(),this.entries.push({id:s,message:e,timer:r}),this.requestRender()}dispose(){for(let e of this.entries)clearTimeout(e.timer);this.entries.length=0}invalidate(){}render(e){return this.entries.map(t=>`\x1B[7m${X(` ${t.message} `,e,"")}\x1B[27m`)}};var kl=/^(?:\x1b\]133;[ABC](?:\x07|\x1b\\))+/;function tt(i,e){let t=Math.max(i.x,e.x),s=Math.max(i.y,e.y),r=Math.min(i.x+i.width,e.x+e.width),n=Math.min(i.y+i.height,e.y+e.height);return{x:t,y:s,width:Math.max(0,r-t),height:Math.max(0,n-s)}}function Wt(i,e,t){let s=Math.max(1,Math.floor(t)),r=i.renderCache.get(e);r||(r=new Map,i.renderCache.set(e,r));let n=r.get(s);return n||(n=e.render(s),r.set(s,n)),n}function mr(i,e,t){return Wt(i,e,t).length}function Cl(i,e,t){return Wt(i,e,t).reduce((s,r)=>Math.max(s,y(r)),0)}function gr(i,e){return i.parent=e,i}function br(i,e){i.rect.y+=e;for(let t of i.children)br(t,e)}function wr(i,e){i.clip=tt(e,i.rect);for(let t of i.children)wr(t,i.clip)}function _t(i,e,t,s,r,n,o){let l=Math.max(1,Math.floor(r)),a=hr(e);if(!a){let g=Wt(i,e,l),v=n===void 0?g.length:Math.max(0,Math.floor(n)),C=0;if(g.length>v&&v>0){let T=g.findIndex(w=>w.includes(Q));T>=v&&(C=T-v+1)}return{component:e,rect:{x:t,y:s,width:l,height:v},clip:tt(o,{x:t,y:s,width:l,height:v}),children:[],lines:g,lineOffset:C,layer:0}}if(a.type==="scroll"){let g=a.state.scrollTop,v=a.state.getContentWidth(l),C=_t(i,a.component,t,s-g,v,void 0,o),T=C.rect.height,w=n===void 0?T:Math.max(0,Math.floor(n));a.state.updateLayout(T,w,i.requestRender),br(C,g-a.state.scrollTop);let R=a.state;(a.state.primary||!i.primaryScrollView)&&(i.primaryScrollView=R);let M={x:t,y:s,width:l,height:w},P=tt(o,M),b={component:e,rect:M,clip:P,children:[C],scrollView:R,scrollContentLines:Wt(i,a.component,v),layer:0};return C.parent=b,wr(C,P),b}let c=Pt(a.entries,i.viewport),h=Math.max(0,c.length-1)*a.gap;if(a.type==="vstack"){let g=c.map(P=>typeof P.basis=="number"?P.basis:mr(i,P.component,l)),v=Qe(c,g,n,a.gap),C=v.reduce((P,b)=>P+b,0)+h,T=n===void 0?C:Math.max(0,Math.floor(n)),w={x:t,y:s,width:l,height:T},R={component:e,rect:w,clip:tt(o,w),children:[],layer:0},M=s;for(let P=0;P<c.length;P++)R.children.push(gr(_t(i,c[P].component,t,M,l,v[P],R.clip),R)),M+=v[P]+a.gap;return R}let u=c.map(g=>typeof g.basis=="number"?g.basis:Cl(i,g.component,l)),f=Qe(c,u,l,a.gap),d=c.map((g,v)=>mr(i,g.component,Math.max(1,f[v]))),m=n===void 0?d.reduce((g,v)=>Math.max(g,v),0):Math.max(0,n),p={x:t,y:s,width:l,height:m},x={component:e,rect:p,clip:tt(o,p),children:[],layer:0},S=t;for(let g=0;g<c.length;g++){let v=d[g],C=a.align==="stretch"?m:Math.min(m,v),T=s;a.align==="center"?T+=Math.floor((m-C)/2):a.align==="end"&&(T+=m-C);let w=f[g];w===0?x.children.push({component:c[g].component,rect:{x:S,y:T,width:0,height:C},clip:{x:S,y:T,width:0,height:0},children:[],parent:x,layer:0}):x.children.push(gr(_t(i,c[g].component,S,T,w,C,x.clip),x)),S+=w+a.gap}return x}function Sl(i,e,t,s){if(F(i))return i;let r=Ue(i,e),n=r?.start??e,o=r?.end??e+1,l=N(i,0,n,!0),a=N(i,n,o-n,!0),c=N(i,o,Math.max(0,t-o),!0),h="",u=0;for(;u<a.length;){let m=W(a,u);if(!m)break;h+=m.code,u+=m.length}let f=a.slice(u)||" ".repeat(o-n),d=" ".repeat(Math.max(0,n-y(l)));return`${l}${d}${h}${s(f)}${c}`}function Dt(i){if(!i.scrollView?.isScrollbarVisible||i.rect.width<=0||i.rect.height<=0)return;let e=i.children[0]?.rect.height??i.scrollContentLines?.length??0,t=i.rect.height,s=Math.min(2,t),r=Math.max(s,Math.min(t,Math.round(t*t/e))),n=Math.max(0,e-t),o=t-r,l=n===0?0:Math.round(i.scrollView.scrollTop/n*o),a=i.rect.x+i.rect.width-1;if(!(a<i.clip.x||a>=i.clip.x+i.clip.width))return{column:a,trackTop:i.rect.y,trackHeight:t,thumbTop:i.rect.y+l,thumbHeight:r,maxScrollTop:n}}function vl(i,e,t){let s=Dt(i);if(!(!s||!i.scrollView))for(let r=0;r<s.thumbHeight;r++){let n=s.thumbTop+r;n<i.clip.y||n>=i.clip.y+i.clip.height||n<0||n>=e.length||(e[n]=Sl(e[n]??"",s.column,t,i.scrollView.scrollbarStyle))}}function yr(i,e,t){if(i.lines){let s=i.lineOffset??0,r=Math.max(i.rect.y,i.clip.y,0),n=Math.min(i.rect.y+i.rect.height,i.clip.y+i.clip.height,e.length);for(let o=r;o<n;o++){let l=i.lines[s+o-i.rect.y];if(l===void 0)continue;let a=l.replace(kl,""),c=ft(a);if(c){let h=Math.min(e.length,i.clip.y+i.clip.height),u=Math.min(c.rows,h-o);u<c.rows&&(a=Zt(a,0,u))}F(a)&&i.rect.x===0&&i.rect.width>=t?e[o]=a:e[o]=xe(e[o]??"",a,i.rect.x,i.rect.width,t)}}for(let s of i.children)yr(s,e,t);if(i.scrollView&&i.scrollContentLines&&i.scrollView.scrollTop>0&&i.rect.height>0)for(let s=i.scrollView.scrollTop-1;s>=0;s--){let r=i.scrollContentLines[s]??"",n=ft(r);if(n){let o=i.scrollView.scrollTop-s;if(o<n.rows){let l=Math.min(i.rect.height,n.rows-o),a=Zt(r,o,l);i.rect.x===0&&i.rect.width>=t&&(e[i.rect.y]=a)}break}if(r!=="")break}vl(i,e,t)}function kr(i,e,t,s){let r=Math.max(1,Math.floor(e)),n=Math.max(1,Math.floor(t)),o={viewport:{width:r,height:n},renderCache:new Map,requestRender:s,primaryScrollView:void 0},l=_t(o,i,0,0,r,n,{x:0,y:0,width:r,height:n}),a=Array.from({length:n},()=>"");return yr(l,a,r),{root:l,width:r,height:n,lines:a,...o.primaryScrollView===void 0?{}:{primaryScrollView:o.primaryScrollView}}}function xr(i,e,t){return e>=i.x&&e<i.x+i.width&&t>=i.y&&t<i.y+i.height}function ue(i,e){let t=s=>{if(s.scrollView===e)return s;for(let r of s.children){let n=t(r);if(n)return n}};return t(i.root)}function Ft(i,e,t){let s=[],r=(n,o)=>{if(xr(n.clip,e,t)){n.scrollView&&xr(n.rect,e,t)&&s.push({scrollView:n.scrollView,depth:o});for(let l of n.children)r(l,o+1)}};return r(i.root,0),s.sort((n,o)=>o.depth-n.depth),s.map(n=>n.scrollView)}var Ll="\x1B[?1049h",Cr="\x1B[?1049l",Sr="\x1B[?7l",vr="\x1B[?7h",Tl="\x1B[?1000h\x1B[?1002h\x1B[?1004h\x1B[?1006h",Rl="\x1B[?1000h\x1B[?1002h\x1B[?1003h\x1B[?1004h\x1B[?1006h",Il="\x1B[?1006l\x1B[?1004l\x1B[?1003l\x1B[?1002l\x1B[?1000l",Al="\x1B[I",Ml="\x1B[O",Nt="\x1B[?2026h",Kt="\x1B[?2026l",Lr=/^(?:\x1b\]133;[ABC](?:\x07|\x1b\\))+/,Pl=/^\x1b\]133;A(?:\x07|\x1b\\)/,Tr=4,$l=16,El=32*1024*1024,Ol=64*1024*1024,Bl=500,_l=Re(),Vs=class extends Ie{mode="fullscreen";[Si]=!0;previousScreen=[];lastDocument=[];previousScreenWidth=0;previousScreenHeight=0;layoutRoot;currentLayout;implicitDocument;implicitScrollView;flashes;altScreenActive=!1;imageProtocol=null;savedCapabilities;uploadedKittyImages=new Map;selectionAnchor;selectionFocus;selectionGranularity="character";selectionInitialRange;lastClick;selectionDragPointer;selectionAutoScrollDirection=0;selectionAutoScrollTimer;selectionPressActive=!1;scrollbarDrag;scrollbarHover;pressedUrl;selectionDragged=!1;wheelScrollLines;mouseEnabled;openUrl;onRightClickPaste;constructor(e,t,s,r={}){super(e,t,s),this.implicitDocument={render:n=>super.render(n),invalidate:()=>{for(let n of this.children)n.invalidate()}},this.implicitScrollView=new et(this.implicitDocument,{follow:"end",primary:!0}),this.flashes=new Bt(()=>this.requestRender()),this.wheelScrollLines=Math.max(1,Math.floor(r.wheelScrollLines??1)),this.mouseEnabled=r.mouse??!0,this.openUrl=r.openUrl,this.onRightClickPaste=r.onRightClickPaste,this.addInputListener(n=>this.handleViewportInput(n))}get viewportTop(){return this.getPrimaryScrollView().scrollTop}get isFollowingOutput(){return this.getPrimaryScrollView().isFollowingEnd}setLayoutRoot(e){this.layoutRoot!==e&&(this.layoutRoot=e,this.currentLayout=void 0,this.requestRender())}render(e){return this.layoutRoot?.render(e)??super.render(e)}getMountedRoots(){return this.layoutRoot?[this.layoutRoot]:this.children}getPrimaryScrollView(){return this.currentLayout?.primaryScrollView??this.implicitScrollView}beforeTerminalStart(){this.stopSelectionAutoScroll(),this.selectionPressActive=!1,this.stopScrollbarHover(),this.stopScrollbarDrag(),this.flashes.dispose(),this.altScreenActive=!0;let e=de();this.imageProtocol=e.images,this.uploadedKittyImages.clear(),e.images==="iterm2"&&(this.savedCapabilities=e,ut({...e,images:null}),this.invalidate()),this.lastDocument=[],this.selectionAnchor=void 0,this.selectionFocus=void 0,this.selectionGranularity="character",this.selectionInitialRange=void 0,this.lastClick=void 0,this.pressedUrl=void 0,this.selectionDragged=!1,this.resetRenderState();let t=process.env.TERM?.toLowerCase()??"",s=process.env.TMUX!==void 0||process.env.ZELLIJ!==void 0||process.env.STY!==void 0||t.startsWith("tmux")||t.startsWith("screen")?Tl:Rl;this.terminal.write(`${Ll}${Sr}${this.mouseEnabled?s:""}\x1B[2J\x1B[H\x1B[?25l`)}beforeTerminalStop(e){this.stopSelectionAutoScroll(),this.selectionPressActive=!1,this.stopScrollbarHover(),this.stopScrollbarDrag(),this.flashes.dispose(),this.altScreenActive&&(this.terminal.write(`${Nt}${this.deleteKittyImages()}${this.mouseEnabled?Il:""}${vr}${Kt}`),this.uploadedKittyImages.clear())}afterTerminalStop(e){if(this.altScreenActive){if(this.altScreenActive=!1,e.preserveScreen)this.terminal.write(`${Nt}${Cr}\x1B[?25h${Kt}`);else{let t=Math.max(1,this.terminal.columns),s=this.render(t).map(n=>n.replace(Lr,""));this.lastDocument=this.applyLineResets(s.map(n=>n.replaceAll(Q,""))).map(n=>F(n)||y(n)<=t?n:N(n,0,t,!0));let r=`${Nt}${Cr}${Sr}`;for(let n=0;n<this.lastDocument.length;n++)n>0&&(r+=`\r
114
- `),r+=`\r\x1B[2K${this.lastDocument[n]??""}`;r+=`\x1B[0m${vr}\r
115
- \x1B[?25h${Kt}`,this.terminal.write(r)}this.savedCapabilities&&(ut(this.savedCapabilities),this.savedCapabilities=void 0)}}deleteKittyImages(){return this.imageProtocol==="kitty"?Xt():""}prepareKittyScreen(e){let t=new Set,s=e.map(a=>{let c=ii(a);if(!c)return a;t.add(c.imageId);let h=this.uploadedKittyImages.get(c.imageId),u={transmissionGeneration:c.transmissionGeneration,transmissionBytes:c.transmissionBytes,estimatedDecodedBytes:c.estimatedDecodedBytes};return h&&this.uploadedKittyImages.delete(c.imageId),this.uploadedKittyImages.set(c.imageId,u),h?.transmissionGeneration===c.transmissionGeneration?c.replacementLine:a}),r=0,n=0,o=0;for(let[a,c]of this.uploadedKittyImages)t.has(a)||(r+=1,n+=c.transmissionBytes,o+=c.estimatedDecodedBytes);let l="";for(let[a,c]of this.uploadedKittyImages){if(r<=$l&&n<=El&&o<=Ol)break;t.has(a)||(l+=Ve(a),this.uploadedKittyImages.delete(a),r-=1,n-=c.transmissionBytes,o-=c.estimatedDecodedBytes)}return{lines:s,evictedImageDeletion:l}}resetRenderState(){this.previousScreen=[],this.previousScreenWidth=0,this.previousScreenHeight=0,this.currentLayout=void 0}scrollBy(e){this.getPrimaryScrollView().scrollBy(e),this.requestRender()}scrollToTop(){this.getPrimaryScrollView().scrollToStart(),this.requestRender()}scrollToBottom(){this.getPrimaryScrollView().scrollToEnd(),this.requestRender()}scrollToPrompt(e){if(!this.currentLayout)return;let t=this.getPrimaryScrollView(),s=ue(this.currentLayout,t)?.scrollContentLines;if(s){for(let r=t.scrollTop+e;r>=0&&r<s.length;r+=e)if(Pl.test(s[r]??"")){t.scrollTo(r),this.requestRender();return}}}flash(e,t){this.flashes.flash(e,t)}handleViewportInput(e){if(e===Ml){let o=this.selectionPressActive;return this.selectionPressActive=!1,this.stopSelectionAutoScroll(),this.stopScrollbarHover(),this.stopScrollbarDrag(),this.pressedUrl=void 0,this.selectionDragged=!1,o&&(this.selectionAnchor=void 0,this.selectionFocus=void 0,this.selectionGranularity="character",this.selectionInitialRange=void 0),this.lastClick=void 0,this.requestRender(),{consume:!0}}if(e===Al)return{consume:!0};let t=this.parseWheelEvent(e);if(t)return this.routeWheel(t),{consume:!0};let s=this.parseSgrMouseEvent(e);if(s){if(this.handleRightClickPaste(s))return{consume:!0};let o=this.handleScrollbarMouseEvent(s);return this.scrollbarDrag||this.updateScrollbarHover(s.x,s.y),o||this.handleSelectionMouseEvent(s),{consume:!0}}if(this.isMouseSequence(e))return{consume:!0};let r=ee(),n=Ne(e);if(r.matches(e,"tui.altScreen.pageUp"))return n||this.scrollBy(-Math.max(1,this.getPrimaryScrollView().viewportHeight-Tr)),{consume:!0};if(r.matches(e,"tui.altScreen.pageDown"))return n||this.scrollBy(Math.max(1,this.getPrimaryScrollView().viewportHeight-Tr)),{consume:!0};if(r.matches(e,"tui.altScreen.halfPageUp"))return n||this.scrollBy(-Math.max(1,Math.floor(this.getPrimaryScrollView().viewportHeight/2))),{consume:!0};if(r.matches(e,"tui.altScreen.halfPageDown"))return n||this.scrollBy(Math.max(1,Math.floor(this.getPrimaryScrollView().viewportHeight/2))),{consume:!0};if(r.matches(e,"tui.altScreen.previousPrompt"))return n||this.scrollToPrompt(-1),{consume:!0};if(r.matches(e,"tui.altScreen.nextPrompt"))return n||this.scrollToPrompt(1),{consume:!0};if(r.matches(e,"tui.altScreen.top"))return n||this.scrollToTop(),{consume:!0};if(r.matches(e,"tui.altScreen.bottom"))return n||this.scrollToBottom(),{consume:!0}}parseWheelEvent(e){let t=/^\x1b\[<(\d+);(\d+);(\d+)[Mm]$/.exec(e);if(t){let s=Number.parseInt(t[1],10);if((s&64)===0)return;let r=s&3;return r!==0&&r!==1?void 0:{direction:r===0?-1:1,x:Number.parseInt(t[2],10)-1,y:Number.parseInt(t[3],10)-1}}if(e.length===6&&e.startsWith("\x1B[M")){let s=e.charCodeAt(3)-32;if((s&64)===0)return;let r=s&3;return r!==0&&r!==1?void 0:{direction:r===0?-1:1,x:e.charCodeAt(4)-33,y:e.charCodeAt(5)-33}}}routeWheel(e){let t=e.direction*this.wheelScrollLines,s=new Set;for(let n of this.currentLayout?Ft(this.currentLayout,e.x,e.y):[])if(s.add(n),t=n.scrollBy(t),t===0||n.overscroll==="contain")break;let r=this.getPrimaryScrollView();t!==0&&!s.has(r)&&r.scrollBy(t),this.updateScrollbarHover(e.x,e.y),this.requestRender()}parseSgrMouseEvent(e){let t=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])$/.exec(e);if(t)return{button:Number.parseInt(t[1],10),x:Number.parseInt(t[2],10)-1,y:Number.parseInt(t[3],10)-1,release:t[4]==="m"}}handleRightClickPaste(e){if(!this.onRightClickPaste||process.platform!=="win32"||e.release||e.button!==2)return!1;try{this.onRightClickPaste()}catch{}return!0}getScrollbarTargetAt(e,t){if(!(this.hasOverlay()||!this.currentLayout))for(let s of Ft(this.currentLayout,e,t)){let r=ue(this.currentLayout,s),n=r?Dt(r):void 0;if(n&&e===n.column&&t>=n.thumbTop&&t<n.thumbTop+n.thumbHeight)return{scrollView:s,geometry:n}}}setScrollbarHover(e){e!==this.scrollbarHover&&(this.scrollbarHover?.setScrollbarActive(!1),this.scrollbarHover=e,this.scrollbarHover?.setScrollbarActive(!0))}updateScrollbarHover(e,t){this.setScrollbarHover(this.getScrollbarTargetAt(e,t)?.scrollView)}stopScrollbarHover(){this.setScrollbarHover(void 0)}handleScrollbarMouseEvent(e){if(this.scrollbarDrag){if(e.release)return this.stopScrollbarDrag(),!0;let s=this.currentLayout?ue(this.currentLayout,this.scrollbarDrag.scrollView):void 0,r=s?Dt(s):void 0;if(r){let n=r.trackHeight-r.thumbHeight,o=Math.max(0,Math.min(n,e.y-r.trackTop-this.scrollbarDrag.grabOffset)),l=n===0?0:Math.round(o/n*r.maxScrollTop);this.scrollbarDrag.scrollView.scrollTo(l)}return!0}if(e.release||(e.button&32)!==0||(e.button&3)!==0)return!1;let t=this.getScrollbarTargetAt(e.x,e.y);return t?(this.stopSelectionAutoScroll(),this.selectionPressActive=!1,this.selectionAnchor=void 0,this.selectionFocus=void 0,this.selectionGranularity="character",this.selectionInitialRange=void 0,this.lastClick=void 0,this.pressedUrl=void 0,this.selectionDragged=!1,this.setScrollbarHover(t.scrollView),this.scrollbarDrag={scrollView:t.scrollView,grabOffset:e.y-t.geometry.thumbTop},!0):!1}stopScrollbarDrag(){this.scrollbarDrag=void 0}getScrollSelectionPoint(e,t,s){if(!this.currentLayout)return;let r=ue(this.currentLayout,e);if(!r||r.rect.height<=0||r.clip.height<=0)return;let n=Math.max(0,r.rect.y,r.clip.y),o=Math.min(this.terminal.rows-1,r.rect.y+r.rect.height-1,r.clip.y+r.clip.height-1);if(o<n)return;let l=Math.max(n,Math.min(o,s)),a=Math.max(0,(r.scrollContentLines?.length??1)-1);return{row:Math.max(0,Math.min(a,e.scrollTop+l-r.rect.y)),col:Math.max(0,Math.min(r.rect.width-1,t-r.rect.x)),scrollView:e}}getSelectionPoint(e,t){if(t){let s=this.getScrollSelectionPoint(t,e.x,e.y);if(s)return s}return{row:Math.max(0,Math.min(this.terminal.rows-1,e.y)),col:Math.max(0,Math.min(this.terminal.columns-1,e.x))}}getSelectionSourceLine(e){if(e.scrollView&&this.currentLayout){let t=ue(this.currentLayout,e.scrollView)?.scrollContentLines;if(t)return t[e.row]??""}return this.previousScreen[e.row]??""}getWordSelection(e){let t=gt(this.getSelectionSourceLine(e)),s=0;for(let r of _l.segment(t)){let n=s+y(r.segment);if(e.col>=s&&e.col<n)return{start:{...e,col:s},end:{...e,col:n,boundary:!0}};s=n}}getLineSelection(e){return{start:{...e,col:0},end:{...e,col:y(this.getSelectionSourceLine(e)),boundary:!0}}}updateSelectionFocus(e){if(this.selectionGranularity==="character"||!this.selectionInitialRange){this.selectionFocus=e;return}let t=this.selectionGranularity==="word"?this.getWordSelection(e):this.getLineSelection(e);if(!t)return;let s=this.selectionInitialRange;t.start.row<s.start.row||t.start.row===s.start.row&&t.start.col<s.start.col?(this.selectionAnchor=s.end,this.selectionFocus=t.start):(this.selectionAnchor=s.start,this.selectionFocus=t.end)}getClickCount(e,t){let s=Date.now(),r=this.lastClick,n=t&&r&&s-r.timestamp<=Bl&&r.row===e.row&&r.scrollView===e.scrollView&&r.wordStart===t.start.col&&r.wordEnd===t.end.col?r.count%3+1:1;return this.lastClick=t?{timestamp:s,count:n,row:e.row,scrollView:e.scrollView,wordStart:t.start.col,wordEnd:t.end.col}:void 0,n}updateSelectionAutoScroll(e){let t=this.selectionAnchor?.scrollView;if(!t||!this.currentLayout){this.stopSelectionAutoScroll();return}let s=ue(this.currentLayout,t);if(!s||s.rect.height<=0||s.clip.height<=0){this.stopSelectionAutoScroll();return}let r=Math.max(0,s.rect.y,s.clip.y),n=Math.min(this.terminal.rows-1,s.rect.y+s.rect.height-1,s.clip.y+s.clip.height-1);if(this.selectionDragPointer={x:e.x,y:e.y},this.selectionAutoScrollDirection=e.y<=r?-1:e.y>=n?1:0,this.selectionAutoScrollDirection===0){this.stopSelectionAutoScroll();return}this.selectionAutoScrollTimer||(this.selectionAutoScrollTimer=setInterval(()=>this.autoScrollSelection(),50),this.selectionAutoScrollTimer.unref())}autoScrollSelection(){let e=this.selectionAnchor?.scrollView,t=this.selectionDragPointer,s=this.selectionAutoScrollDirection;if(!e||!t||s===0){this.stopSelectionAutoScroll();return}if(e.scrollBy(s)===s){this.stopSelectionAutoScroll();return}let n=this.getScrollSelectionPoint(e,t.x,t.y);n&&this.updateSelectionFocus(n),this.requestRender()}stopSelectionAutoScroll(){this.selectionAutoScrollTimer&&(clearInterval(this.selectionAutoScrollTimer),this.selectionAutoScrollTimer=void 0),this.selectionAutoScrollDirection=0,this.selectionDragPointer=void 0}handleSelectionMouseEvent(e){if((e.button&3)!==0)return;let t=this.selectionAnchor?.scrollView,s=this.getSelectionPoint(e,t);if(e.release){if(!this.selectionPressActive||(this.selectionPressActive=!1,this.stopSelectionAutoScroll(),!this.selectionAnchor))return;this.updateSelectionFocus(s);let c=!this.selectionDragged&&this.selectionAnchor.scrollView===s.scrollView&&this.selectionAnchor.row===s.row&&this.selectionAnchor.col===s.col?this.pressedUrl:void 0;if(this.pressedUrl=void 0,c&&this.openUrl){this.selectionAnchor=void 0,this.selectionFocus=void 0;try{this.openUrl(c)}catch{}this.requestRender();return}this.copySelectionToClipboard(),this.requestRender();return}if((e.button&32)!==0){if(!this.selectionPressActive||!this.selectionAnchor)return;this.selectionDragged=!0,this.lastClick=void 0,this.pressedUrl=void 0,this.updateSelectionFocus(s),this.updateSelectionAutoScroll(e),this.requestRender();return}this.stopSelectionAutoScroll(),this.selectionPressActive=!0;let r=!this.hasOverlay()&&this.currentLayout?Ft(this.currentLayout,e.x,e.y)[0]:void 0,n=this.getSelectionPoint(e,r),o=this.getWordSelection(n),l=this.getClickCount(n,o),a=l===2?o:l===3?this.getLineSelection(n):void 0;this.selectionGranularity=a?l===2?"word":"line":"character",this.selectionInitialRange=a,this.selectionAnchor=a?.start??n,this.selectionFocus=a?.end??n,this.selectionDragged=!1,this.pressedUrl=a?void 0:ns(this.previousScreen[Math.max(0,Math.min(this.terminal.rows-1,e.y))]??"",Math.max(0,Math.min(this.terminal.columns-1,e.x))),this.requestRender()}getSelectionBounds(){if(!this.selectionAnchor||!this.selectionFocus||this.selectionAnchor.scrollView!==this.selectionFocus.scrollView)return;let e=this.selectionAnchor.row<this.selectionFocus.row||this.selectionAnchor.row===this.selectionFocus.row&&this.selectionAnchor.col<this.selectionFocus.col;if(!(this.selectionAnchor.row===this.selectionFocus.row&&this.selectionAnchor.col===this.selectionFocus.col))return e?{start:this.selectionAnchor,end:this.selectionFocus}:{start:this.selectionFocus,end:this.selectionAnchor}}getSelectionColumns(e,t,s,r=0,n=y(e)){let o=y(e),l=Math.max(0,r),a=Math.min(o,n);return t===s.start.row&&(l=Ue(e,s.start.col)?.start??Math.min(s.start.col,o)),t===s.end.row&&(a=s.end.boundary?Math.min(s.end.col,o):Ue(e,s.end.col)?.end??Math.min(s.end.col+1,o)),{start:Math.max(r,l),end:Math.min(n,a)}}copySelectionToClipboard(){let e=this.getSelectionBounds();if(!e)return;let t=this.previousScreen;if(e.start.scrollView){if(!this.currentLayout)return;let n=ue(this.currentLayout,e.start.scrollView);if(!n?.scrollContentLines)return;t=n.scrollContentLines}let s=[];for(let n=e.start.row;n<=e.end.row;n++){let o=t[n]??"",l=this.getSelectionColumns(o,n,e);s.push(gt(N(o,l.start,Math.max(0,l.end-l.start),!0)).trimEnd())}let r=s.join(`
116
- `);r.length!==0&&(this.terminal.write(`\x1B]52;c;${Buffer.from(r).toString("base64")}\x07`),this.flash("Copied!"))}applySelectionHighlight(e){let t="\x1B[7m",s=0;for(;s<e.length;){let r=W(e,s);if(!r){t+=e[s],s+=1;continue}t+=r.code,r.code.endsWith("m")&&(t+="\x1B[7m"),s+=r.length}return`${t}\x1B[27m`}applySelection(e,t=this.currentLayout){let s=this.getSelectionBounds();if(!s)return e;let r=s,n=0,o=e.length-1,l=0,a=this.terminal.columns;if(s.start.scrollView){if(!t)return e;let c=ue(t,s.start.scrollView);if(!c)return e;n=Math.max(0,c.rect.y,c.clip.y),o=Math.min(e.length-1,c.rect.y+c.rect.height-1,c.clip.y+c.clip.height-1),l=Math.max(0,c.rect.x,c.clip.x),a=Math.min(this.terminal.columns,c.rect.x+c.rect.width,c.clip.x+c.clip.width),r={start:{...s.start,row:c.rect.y+s.start.row-s.start.scrollView.scrollTop,col:c.rect.x+s.start.col},end:{...s.end,row:c.rect.y+s.end.row-s.start.scrollView.scrollTop,col:c.rect.x+s.end.col}}}return e.map((c,h)=>{if(h<n||h>o||h<r.start.row||h>r.end.row||F(c))return c;let u=y(c),f=this.getSelectionColumns(c,h,r,l,a);if(f.end<=f.start)return c;let d=N(c,0,f.start,!0),m=N(c,f.start,f.end-f.start,!0),p=N(c,f.end,Math.max(0,u-f.end),!0);return`${d}${this.applySelectionHighlight(m)}${p}`})}isMouseSequence(e){return/^\x1b\[<\d+;\d+;\d+[Mm]$/.test(e)||e.length===6&&e.startsWith("\x1B[M")}compositeFlashes(e,t,s){let r=this.flashes.render(t).slice(-s);if(r.length===0)return e;let n=[...e];for(;n.length<s;)n.push("");for(let o=0;o<r.length;o++){let l=r[o],a=y(l);a!==0&&(n[o]=xe(n[o]??"",l,t-a,a,t))}return n}doRender(){if(this.stopped||!this.altScreenActive)return;let e=Math.max(1,this.terminal.columns),t=Math.max(1,this.terminal.rows),s=this.layoutRoot??this.implicitScrollView,r=kr(s,e,t,()=>this.requestRender()),n=r.lines.map(d=>d.replace(Lr,""));n=this.compositeOverlays(n,e,t),n.length>t&&(n=n.slice(n.length-t)),n=this.applySelection(n,r),n=this.compositeFlashes(n,e,t);let o=this.extractCursorPosition(n,t);n=this.applyLineResets(n).map(d=>F(d)||y(d)<=e?d:N(d,0,e,!0));let l=this.previousScreen.length===0||this.previousScreenWidth!==e||this.previousScreenHeight!==t,a=n.some((d,m)=>d!==this.previousScreen[m]&&(F(d)||F(this.previousScreen[m]??""))),c=l||a,h=this.uploadedKittyImages.size>0,u=c&&this.imageProtocol==="kitty"?this.prepareKittyScreen(n):{lines:n,evictedImageDeletion:""},f=Nt;if(l){this.fullRedrawCount+=1;let d=this.imageProtocol==="kitty"&&h?Qt():this.deleteKittyImages();f+=`${d}\x1B[2J`}else a&&(this.imageProtocol==="iterm2"?f+="\x1B[2J":this.imageProtocol==="kitty"&&(f+=Qt()));f+=u.evictedImageDeletion;for(let d=0;d<t;d++)!l&&!a&&n[d]===this.previousScreen[d]||(f+=`\x1B[${d+1};1H\x1B[2K${u.lines[d]??""}`);o?(f+=`\x1B[${o.row+1};${Math.min(e,o.col)+1}H`,f+=this.getShowHardwareCursor()?"\x1B[?25h":"\x1B[?25l"):f+="\x1B[?25l",f+=Kt,this.terminal.write(f),this.previousScreen=n,this.previousScreenWidth=e,this.previousScreenHeight=t,this.currentLayout=r}};export{Ne as a,te as b,ot as c,zt as d,y as e,ie as f,X as g,Q as h,ce as i,us as j,bt as k,Lt as l,Ls as m,Ts as n,ee as o,Ye as p,Ms as q,$t as r,Ds as s,Ns as t,Ks as u};
117
- //# sourceMappingURL=chunk-TZNTMUGF.js.map