nexrall-code 0.5.40 → 0.5.41

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 (2) hide show
  1. package/dist/index.js +245 -142
  2. package/package.json +2 -1
package/dist/index.js CHANGED
@@ -17482,6 +17482,15 @@ var require_dist2 = __commonJS({
17482
17482
  }
17483
17483
  });
17484
17484
 
17485
+ // ../../node_modules/.pnpm/emoji-regex@10.6.0/node_modules/emoji-regex/index.js
17486
+ var require_emoji_regex = __commonJS({
17487
+ "../../node_modules/.pnpm/emoji-regex@10.6.0/node_modules/emoji-regex/index.js"(exports, module) {
17488
+ module.exports = () => {
17489
+ return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
17490
+ };
17491
+ }
17492
+ });
17493
+
17485
17494
  // ../../node_modules/.pnpm/react@19.2.8/node_modules/react/cjs/react.production.js
17486
17495
  var require_react_production = __commonJS({
17487
17496
  "../../node_modules/.pnpm/react@19.2.8/node_modules/react/cjs/react.production.js"(exports) {
@@ -51923,6 +51932,160 @@ import * as crypto from "crypto";
51923
51932
  import { execSync } from "child_process";
51924
51933
  var import_code_core3 = __toESM(require_dist2(), 1);
51925
51934
 
51935
+ // ../../node_modules/.pnpm/ansi-regex@6.2.2/node_modules/ansi-regex/index.js
51936
+ function ansiRegex({ onlyFirst = false } = {}) {
51937
+ const ST = "(?:\\u0007|\\u001B\\u005C|\\u009C)";
51938
+ const osc = `(?:\\u001B\\][\\s\\S]*?${ST})`;
51939
+ const csi = "[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";
51940
+ const pattern = `${osc}|${csi}`;
51941
+ return new RegExp(pattern, onlyFirst ? void 0 : "g");
51942
+ }
51943
+
51944
+ // ../../node_modules/.pnpm/strip-ansi@7.2.0/node_modules/strip-ansi/index.js
51945
+ var regex = ansiRegex();
51946
+ function stripAnsi(string) {
51947
+ if (typeof string !== "string") {
51948
+ throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
51949
+ }
51950
+ if (!string.includes("\x1B") && !string.includes("\x9B")) {
51951
+ return string;
51952
+ }
51953
+ return string.replace(regex, "");
51954
+ }
51955
+
51956
+ // ../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/lookup-data.js
51957
+ var ambiguousMinimalCodePoint = 161;
51958
+ var ambiguousMaximumCodePoint = 1114109;
51959
+ var ambiguousRanges = [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];
51960
+ var fullwidthMinimalCodePoint = 12288;
51961
+ var fullwidthMaximumCodePoint = 65510;
51962
+ var fullwidthRanges = [12288, 12288, 65281, 65376, 65504, 65510];
51963
+ var wideMinimalCodePoint = 4352;
51964
+ var wideMaximumCodePoint = 262141;
51965
+ var wideRanges = [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];
51966
+
51967
+ // ../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/utilities.js
51968
+ var isInRange = (ranges, codePoint) => {
51969
+ let low = 0;
51970
+ let high = Math.floor(ranges.length / 2) - 1;
51971
+ while (low <= high) {
51972
+ const mid = Math.floor((low + high) / 2);
51973
+ const i2 = mid * 2;
51974
+ if (codePoint < ranges[i2]) {
51975
+ high = mid - 1;
51976
+ } else if (codePoint > ranges[i2 + 1]) {
51977
+ low = mid + 1;
51978
+ } else {
51979
+ return true;
51980
+ }
51981
+ }
51982
+ return false;
51983
+ };
51984
+
51985
+ // ../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/lookup.js
51986
+ var commonCjkCodePoint = 19968;
51987
+ var [wideFastPathStart, wideFastPathEnd] = /* @__PURE__ */ findWideFastPathRange(wideRanges);
51988
+ function findWideFastPathRange(ranges) {
51989
+ let fastPathStart = ranges[0];
51990
+ let fastPathEnd = ranges[1];
51991
+ for (let index = 0; index < ranges.length; index += 2) {
51992
+ const start = ranges[index];
51993
+ const end = ranges[index + 1];
51994
+ if (commonCjkCodePoint >= start && commonCjkCodePoint <= end) {
51995
+ return [start, end];
51996
+ }
51997
+ if (end - start > fastPathEnd - fastPathStart) {
51998
+ fastPathStart = start;
51999
+ fastPathEnd = end;
52000
+ }
52001
+ }
52002
+ return [fastPathStart, fastPathEnd];
52003
+ }
52004
+ var isAmbiguous = (codePoint) => {
52005
+ if (codePoint < ambiguousMinimalCodePoint || codePoint > ambiguousMaximumCodePoint) {
52006
+ return false;
52007
+ }
52008
+ return isInRange(ambiguousRanges, codePoint);
52009
+ };
52010
+ var isFullWidth = (codePoint) => {
52011
+ if (codePoint < fullwidthMinimalCodePoint || codePoint > fullwidthMaximumCodePoint) {
52012
+ return false;
52013
+ }
52014
+ return isInRange(fullwidthRanges, codePoint);
52015
+ };
52016
+ var isWide = (codePoint) => {
52017
+ if (codePoint >= wideFastPathStart && codePoint <= wideFastPathEnd) {
52018
+ return true;
52019
+ }
52020
+ if (codePoint < wideMinimalCodePoint || codePoint > wideMaximumCodePoint) {
52021
+ return false;
52022
+ }
52023
+ return isInRange(wideRanges, codePoint);
52024
+ };
52025
+
52026
+ // ../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/index.js
52027
+ function validate(codePoint) {
52028
+ if (!Number.isSafeInteger(codePoint)) {
52029
+ throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
52030
+ }
52031
+ }
52032
+ function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) {
52033
+ validate(codePoint);
52034
+ if (isFullWidth(codePoint) || isWide(codePoint) || ambiguousAsWide && isAmbiguous(codePoint)) {
52035
+ return 2;
52036
+ }
52037
+ return 1;
52038
+ }
52039
+
52040
+ // ../../node_modules/.pnpm/string-width@7.2.0/node_modules/string-width/index.js
52041
+ var import_emoji_regex = __toESM(require_emoji_regex(), 1);
52042
+ var segmenter = new Intl.Segmenter();
52043
+ var defaultIgnorableCodePointRegex = new RegExp("^\\p{Default_Ignorable_Code_Point}$", "u");
52044
+ function stringWidth(string, options = {}) {
52045
+ if (typeof string !== "string" || string.length === 0) {
52046
+ return 0;
52047
+ }
52048
+ const {
52049
+ ambiguousIsNarrow = true,
52050
+ countAnsiEscapeCodes = false
52051
+ } = options;
52052
+ if (!countAnsiEscapeCodes) {
52053
+ string = stripAnsi(string);
52054
+ }
52055
+ if (string.length === 0) {
52056
+ return 0;
52057
+ }
52058
+ let width = 0;
52059
+ const eastAsianWidthOptions = { ambiguousAsWide: !ambiguousIsNarrow };
52060
+ for (const { segment: character } of segmenter.segment(string)) {
52061
+ const codePoint = character.codePointAt(0);
52062
+ if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {
52063
+ continue;
52064
+ }
52065
+ if (codePoint >= 8203 && codePoint <= 8207 || codePoint === 65279) {
52066
+ continue;
52067
+ }
52068
+ if (codePoint >= 768 && codePoint <= 879 || codePoint >= 6832 && codePoint <= 6911 || codePoint >= 7616 && codePoint <= 7679 || codePoint >= 8400 && codePoint <= 8447 || codePoint >= 65056 && codePoint <= 65071) {
52069
+ continue;
52070
+ }
52071
+ if (codePoint >= 55296 && codePoint <= 57343) {
52072
+ continue;
52073
+ }
52074
+ if (codePoint >= 65024 && codePoint <= 65039) {
52075
+ continue;
52076
+ }
52077
+ if (defaultIgnorableCodePointRegex.test(character)) {
52078
+ continue;
52079
+ }
52080
+ if ((0, import_emoji_regex.default)().test(character)) {
52081
+ width += 2;
52082
+ continue;
52083
+ }
52084
+ width += eastAsianWidth(codePoint, eastAsianWidthOptions);
52085
+ }
52086
+ return width;
52087
+ }
52088
+
51926
52089
  // src/ui/theme.ts
51927
52090
  var colors = {
51928
52091
  primary: source_default.blue,
@@ -51945,7 +52108,7 @@ var icons = {
51945
52108
  code: "{}"
51946
52109
  };
51947
52110
  function visibleLen(s2) {
51948
- return s2.replace(/\x1b\[[0-9;]*m/g, "").length;
52111
+ return stringWidth(s2);
51949
52112
  }
51950
52113
  function padVis(s2, n) {
51951
52114
  const pad = n - visibleLen(s2);
@@ -53227,14 +53390,39 @@ function center(s2, w) {
53227
53390
  const left = Math.floor((w - len) / 2);
53228
53391
  return " ".repeat(left) + s2;
53229
53392
  }
53393
+ var graphemesOf = (s2) => [...s2];
53394
+ function truncateEnd(s2, w) {
53395
+ if (visibleLen(s2) <= w)
53396
+ return s2;
53397
+ let out = "";
53398
+ for (const g of graphemesOf(s2)) {
53399
+ if (visibleLen(out + g) > w - 1)
53400
+ break;
53401
+ out += g;
53402
+ }
53403
+ return out + "\u2026";
53404
+ }
53405
+ function truncateStart(s2, w) {
53406
+ if (visibleLen(s2) <= w)
53407
+ return s2;
53408
+ const gs = graphemesOf(s2);
53409
+ let out = "";
53410
+ for (let i2 = gs.length - 1; i2 >= 0; i2--) {
53411
+ if (visibleLen(gs[i2] + out) > w - 1)
53412
+ break;
53413
+ out = gs[i2] + out;
53414
+ }
53415
+ return "\u2026" + out;
53416
+ }
53230
53417
  function renderBanner(info) {
53231
- const GAP = 4;
53418
+ const PAD = 1;
53419
+ const CHROME = 3 + 4 * PAD;
53232
53420
  const LOGO_W = Math.max(...NEX_LOGO.map(visibleLen));
53233
- const headerText = `Nexrall Code v${info.version}`;
53234
- const LEFT_W = Math.max(LOGO_W, visibleLen(headerText), visibleLen(info.modelLabel), visibleLen(info.workDir));
53235
- const framing = 2 + GAP + 2;
53236
53421
  const termW = process.stdout.columns || 100;
53237
- const RIGHT_W = Math.max(32, Math.min(46, termW - framing - LEFT_W));
53422
+ const totalW = Math.max(LOGO_W + CHROME + 24, termW);
53423
+ const headerText = `Nexrall Code v${info.version}`;
53424
+ const LEFT_W = Math.max(LOGO_W, visibleLen(headerText));
53425
+ const RIGHT_W = totalW - CHROME - LEFT_W;
53238
53426
  const leftLines = [];
53239
53427
  leftLines.push(source_default.bold.hex("#3b82f6")("Nexrall Code ") + source_default.dim(`v${info.version}`));
53240
53428
  leftLines.push("");
@@ -53243,8 +53431,8 @@ function renderBanner(info) {
53243
53431
  for (const l of NEX_LOGO)
53244
53432
  leftLines.push(center(source_default.hex("#3b82f6")(l), LEFT_W));
53245
53433
  leftLines.push("");
53246
- leftLines.push(source_default.dim(info.modelLabel));
53247
- leftLines.push(source_default.dim(info.workDir));
53434
+ leftLines.push(source_default.dim(truncateEnd(info.modelLabel, LEFT_W)));
53435
+ leftLines.push(source_default.dim(truncateStart(info.workDir, LEFT_W)));
53248
53436
  if (info.nexrallMdLoaded)
53249
53437
  leftLines.push(source_default.dim("nexrall.md loaded"));
53250
53438
  const rightLines = [];
@@ -53265,15 +53453,18 @@ function renderBanner(info) {
53265
53453
  }
53266
53454
  const rowCount = Math.max(leftLines.length, rightLines.length);
53267
53455
  const border = source_default.hex("#3b82f6");
53268
- const INNER_W = LEFT_W + GAP + RIGHT_W + 2;
53456
+ const leftSpan = LEFT_W + PAD * 2;
53457
+ const rightSpan = RIGHT_W + PAD * 2;
53458
+ const pad = " ".repeat(PAD);
53459
+ const rule = (l, mid, r2) => border(l + "\u2500".repeat(leftSpan) + mid + "\u2500".repeat(rightSpan) + r2);
53269
53460
  const lines = [];
53270
- lines.push(border("\u256D" + "\u2500".repeat(INNER_W) + "\u256E"));
53461
+ lines.push(rule("\u256D", "\u252C", "\u256E"));
53271
53462
  for (let i2 = 0; i2 < rowCount; i2++) {
53272
53463
  const l = padVis(leftLines[i2] ?? "", LEFT_W);
53273
53464
  const r2 = padVis(rightLines[i2] ?? "", RIGHT_W);
53274
- lines.push(border("\u2502 ") + l + " ".repeat(GAP) + r2 + border(" \u2502"));
53465
+ lines.push(border("\u2502") + pad + l + pad + border("\u2502") + pad + r2 + pad + border("\u2502"));
53275
53466
  }
53276
- lines.push(border("\u2570" + "\u2500".repeat(INNER_W) + "\u256F"));
53467
+ lines.push(rule("\u2570", "\u2534", "\u256F"));
53277
53468
  return lines.join("\n");
53278
53469
  }
53279
53470
  function wrapText(text, width) {
@@ -53291,7 +53482,24 @@ function wrapText(text, width) {
53291
53482
  }
53292
53483
  if (cur)
53293
53484
  out.push(cur);
53294
- return out;
53485
+ const fitted = [];
53486
+ for (const line of out) {
53487
+ if (visibleLen(line) <= width) {
53488
+ fitted.push(line);
53489
+ continue;
53490
+ }
53491
+ let chunk = "";
53492
+ for (const g of graphemesOf(line)) {
53493
+ if (visibleLen(chunk + g) > width) {
53494
+ fitted.push(chunk);
53495
+ chunk = "";
53496
+ }
53497
+ chunk += g;
53498
+ }
53499
+ if (chunk)
53500
+ fitted.push(chunk);
53501
+ }
53502
+ return fitted;
53295
53503
  }
53296
53504
 
53297
53505
  // src/ui/inkTerminal.tsx
@@ -55341,113 +55549,8 @@ function wrapAssembly(lib) {
55341
55549
  var Yoga = wrapAssembly(await yoga_wasm_base64_esm_default());
55342
55550
  var src_default = Yoga;
55343
55551
 
55344
- // ../../node_modules/.pnpm/ansi-regex@6.2.2/node_modules/ansi-regex/index.js
55345
- function ansiRegex({ onlyFirst = false } = {}) {
55346
- const ST = "(?:\\u0007|\\u001B\\u005C|\\u009C)";
55347
- const osc = `(?:\\u001B\\][\\s\\S]*?${ST})`;
55348
- const csi = "[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";
55349
- const pattern = `${osc}|${csi}`;
55350
- return new RegExp(pattern, onlyFirst ? void 0 : "g");
55351
- }
55352
-
55353
- // ../../node_modules/.pnpm/strip-ansi@7.2.0/node_modules/strip-ansi/index.js
55354
- var regex = ansiRegex();
55355
- function stripAnsi(string) {
55356
- if (typeof string !== "string") {
55357
- throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
55358
- }
55359
- if (!string.includes("\x1B") && !string.includes("\x9B")) {
55360
- return string;
55361
- }
55362
- return string.replace(regex, "");
55363
- }
55364
-
55365
- // ../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/lookup-data.js
55366
- var ambiguousMinimalCodePoint = 161;
55367
- var ambiguousMaximumCodePoint = 1114109;
55368
- var ambiguousRanges = [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];
55369
- var fullwidthMinimalCodePoint = 12288;
55370
- var fullwidthMaximumCodePoint = 65510;
55371
- var fullwidthRanges = [12288, 12288, 65281, 65376, 65504, 65510];
55372
- var wideMinimalCodePoint = 4352;
55373
- var wideMaximumCodePoint = 262141;
55374
- var wideRanges = [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];
55375
-
55376
- // ../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/utilities.js
55377
- var isInRange = (ranges, codePoint) => {
55378
- let low = 0;
55379
- let high = Math.floor(ranges.length / 2) - 1;
55380
- while (low <= high) {
55381
- const mid = Math.floor((low + high) / 2);
55382
- const i2 = mid * 2;
55383
- if (codePoint < ranges[i2]) {
55384
- high = mid - 1;
55385
- } else if (codePoint > ranges[i2 + 1]) {
55386
- low = mid + 1;
55387
- } else {
55388
- return true;
55389
- }
55390
- }
55391
- return false;
55392
- };
55393
-
55394
- // ../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/lookup.js
55395
- var commonCjkCodePoint = 19968;
55396
- var [wideFastPathStart, wideFastPathEnd] = /* @__PURE__ */ findWideFastPathRange(wideRanges);
55397
- function findWideFastPathRange(ranges) {
55398
- let fastPathStart = ranges[0];
55399
- let fastPathEnd = ranges[1];
55400
- for (let index = 0; index < ranges.length; index += 2) {
55401
- const start = ranges[index];
55402
- const end = ranges[index + 1];
55403
- if (commonCjkCodePoint >= start && commonCjkCodePoint <= end) {
55404
- return [start, end];
55405
- }
55406
- if (end - start > fastPathEnd - fastPathStart) {
55407
- fastPathStart = start;
55408
- fastPathEnd = end;
55409
- }
55410
- }
55411
- return [fastPathStart, fastPathEnd];
55412
- }
55413
- var isAmbiguous = (codePoint) => {
55414
- if (codePoint < ambiguousMinimalCodePoint || codePoint > ambiguousMaximumCodePoint) {
55415
- return false;
55416
- }
55417
- return isInRange(ambiguousRanges, codePoint);
55418
- };
55419
- var isFullWidth = (codePoint) => {
55420
- if (codePoint < fullwidthMinimalCodePoint || codePoint > fullwidthMaximumCodePoint) {
55421
- return false;
55422
- }
55423
- return isInRange(fullwidthRanges, codePoint);
55424
- };
55425
- var isWide = (codePoint) => {
55426
- if (codePoint >= wideFastPathStart && codePoint <= wideFastPathEnd) {
55427
- return true;
55428
- }
55429
- if (codePoint < wideMinimalCodePoint || codePoint > wideMaximumCodePoint) {
55430
- return false;
55431
- }
55432
- return isInRange(wideRanges, codePoint);
55433
- };
55434
-
55435
- // ../../node_modules/.pnpm/get-east-asian-width@1.6.0/node_modules/get-east-asian-width/index.js
55436
- function validate(codePoint) {
55437
- if (!Number.isSafeInteger(codePoint)) {
55438
- throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
55439
- }
55440
- }
55441
- function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) {
55442
- validate(codePoint);
55443
- if (isFullWidth(codePoint) || isWide(codePoint) || ambiguousAsWide && isAmbiguous(codePoint)) {
55444
- return 2;
55445
- }
55446
- return 1;
55447
- }
55448
-
55449
55552
  // ../../node_modules/.pnpm/string-width@8.2.2/node_modules/string-width/index.js
55450
- var segmenter = new Intl.Segmenter();
55553
+ var segmenter2 = new Intl.Segmenter();
55451
55554
  var zeroWidthClusterRegex = new RegExp("^(?:\\p{Default_Ignorable_Code_Point}|\\p{Control}|\\p{Format}|\\p{Nonspacing_Mark}|\\p{Enclosing_Mark}|\\p{Surrogate})+$", "v");
55452
55555
  var leadingNonPrintingRegex = new RegExp("^[\\p{Default_Ignorable_Code_Point}\\p{Control}\\p{Format}\\p{Nonspacing_Mark}\\p{Enclosing_Mark}\\p{Surrogate}]+", "v");
55453
55556
  var spacingMarkRegex = new RegExp("\\p{Spacing_Mark}", "v");
@@ -55531,7 +55634,7 @@ function trailingWidth(visibleSegment, eastAsianWidthOptions) {
55531
55634
  }
55532
55635
  return extra;
55533
55636
  }
55534
- function stringWidth(input, options = {}) {
55637
+ function stringWidth2(input, options = {}) {
55535
55638
  if (typeof input !== "string" || input.length === 0) {
55536
55639
  return 0;
55537
55640
  }
@@ -55551,7 +55654,7 @@ function stringWidth(input, options = {}) {
55551
55654
  }
55552
55655
  let width = 0;
55553
55656
  const eastAsianWidthOptions = { ambiguousAsWide: !ambiguousIsNarrow };
55554
- for (const { segment } of segmenter.segment(string)) {
55657
+ for (const { segment } of segmenter2.segment(string)) {
55555
55658
  if (isZeroWidthCluster(segment)) {
55556
55659
  continue;
55557
55660
  }
@@ -55783,8 +55886,8 @@ var ANSI_ESCAPE_REGEX = new RegExp(`^\\u001B(?:\\${ANSI_CSI}(?<sgr>[0-9;]*)${ANS
55783
55886
  var ANSI_ESCAPE_CSI_REGEX = new RegExp(`^\\u009B(?<sgr>[0-9;]*)${ANSI_SGR_TERMINATOR}`);
55784
55887
  var ANSI_SGR_MODIFIER_CLOSE_CODES = new Set(ansi_styles_default2.codes.values());
55785
55888
  ANSI_SGR_MODIFIER_CLOSE_CODES.delete(ANSI_SGR_RESET);
55786
- var segmenter2 = new Intl.Segmenter();
55787
- var getGraphemes = (string) => Array.from(segmenter2.segment(string), ({ segment }) => segment);
55889
+ var segmenter3 = new Intl.Segmenter();
55890
+ var getGraphemes = (string) => Array.from(segmenter3.segment(string), ({ segment }) => segment);
55788
55891
  var TAB_SIZE = 8;
55789
55892
  var wrapAnsiCode = (code) => `${ANSI_ESCAPE}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`;
55790
55893
  var wrapAnsiHyperlink = (url) => `${ANSI_ESCAPE}${ANSI_ESCAPE_LINK}${url}${ANSI_ESCAPE_BELL}`;
@@ -55942,14 +56045,14 @@ var applyLeadingSgrResets = (string, activeStyles) => {
55942
56045
  };
55943
56046
  var getClosingSgrSequence = (activeStyles) => [...activeStyles].reverse().map((activeStyle) => wrapAnsiCode(activeStyle.close)).join("");
55944
56047
  var getOpeningSgrSequence = (activeStyles) => activeStyles.map((activeStyle) => wrapAnsiCode(activeStyle.open)).join("");
55945
- var wordLengths = (string) => string.split(" ").map((word) => stringWidth(word));
56048
+ var wordLengths = (string) => string.split(" ").map((word) => stringWidth2(word));
55946
56049
  var wrapWord = (rows, word, columns) => {
55947
56050
  const characters = getGraphemes(word);
55948
56051
  let isInsideEscape = false;
55949
56052
  let isInsideLinkEscape = false;
55950
- let visible = stringWidth(stripAnsi(rows.at(-1)));
56053
+ let visible = stringWidth2(stripAnsi(rows.at(-1)));
55951
56054
  for (const [index, character] of characters.entries()) {
55952
- const characterLength = stringWidth(character);
56055
+ const characterLength = stringWidth2(character);
55953
56056
  if (visible + characterLength <= columns) {
55954
56057
  rows[rows.length - 1] += character;
55955
56058
  } else {
@@ -55986,7 +56089,7 @@ var stringVisibleTrimSpacesRight = (string) => {
55986
56089
  const words = string.split(" ");
55987
56090
  let last = words.length;
55988
56091
  while (last > 0) {
55989
- if (stringWidth(words[last - 1]) > 0) {
56092
+ if (stringWidth2(words[last - 1]) > 0) {
55990
56093
  break;
55991
56094
  }
55992
56095
  last--;
@@ -56005,7 +56108,7 @@ var expandTabs = (line) => {
56005
56108
  let expandedLine = "";
56006
56109
  for (const [index, segment] of segments.entries()) {
56007
56110
  expandedLine += segment;
56008
- visible += stringWidth(segment);
56111
+ visible += stringWidth2(segment);
56009
56112
  if (index < segments.length - 1) {
56010
56113
  const spaces = TAB_SIZE - visible % TAB_SIZE;
56011
56114
  expandedLine += " ".repeat(spaces);
@@ -56027,7 +56130,7 @@ var exec = (string, columns, options = {}) => {
56027
56130
  if (options.trim !== false) {
56028
56131
  rows[rows.length - 1] = rows.at(-1).trimStart();
56029
56132
  }
56030
- let rowLength = stringWidth(rows.at(-1));
56133
+ let rowLength = stringWidth2(rows.at(-1));
56031
56134
  if (index !== 0) {
56032
56135
  if (rowLength >= columns && (options.wordWrap === false || options.trim === false)) {
56033
56136
  rows.push("");
@@ -56233,7 +56336,7 @@ var import_react = __toESM(require_react(), 1);
56233
56336
  function widestLine(string) {
56234
56337
  let lineWidth = 0;
56235
56338
  for (const line of string.split("\n")) {
56236
- lineWidth = Math.max(lineWidth, stringWidth(line));
56339
+ lineWidth = Math.max(lineWidth, stringWidth2(line));
56237
56340
  }
56238
56341
  return lineWidth;
56239
56342
  }
@@ -57146,7 +57249,7 @@ function cliTruncate(text, columns, options = {}) {
57146
57249
  if (columns < 1) {
57147
57250
  return "";
57148
57251
  }
57149
- const length = stringWidth(text);
57252
+ const length = stringWidth2(text);
57150
57253
  if (length <= columns) {
57151
57254
  return text;
57152
57255
  }
@@ -57205,24 +57308,24 @@ function cliTruncate(text, columns, options = {}) {
57205
57308
  }
57206
57309
  if (position === "start") {
57207
57310
  if (preferTruncationOnSpace) {
57208
- const nearestSpace = getIndexOfNearestSpace(text, length - columns + stringWidth(truncationCharacter), true);
57311
+ const nearestSpace = getIndexOfNearestSpace(text, length - columns + stringWidth2(truncationCharacter), true);
57209
57312
  const right2 = sliceAnsi(text, nearestSpace, length).trim();
57210
57313
  return prependWithInheritedStyleFromStart(truncationCharacter, right2);
57211
57314
  }
57212
57315
  if (space) {
57213
57316
  truncationCharacter += " ";
57214
57317
  }
57215
- const right = sliceAnsi(text, length - columns + stringWidth(truncationCharacter), length);
57318
+ const right = sliceAnsi(text, length - columns + stringWidth2(truncationCharacter), length);
57216
57319
  return prependWithInheritedStyleFromStart(truncationCharacter, right);
57217
57320
  }
57218
57321
  if (position === "middle") {
57219
57322
  if (space) {
57220
57323
  truncationCharacter = ` ${truncationCharacter} `;
57221
- if (stringWidth(truncationCharacter) >= columns) {
57324
+ if (stringWidth2(truncationCharacter) >= columns) {
57222
57325
  truncationCharacter = truncationCharacter.trim();
57223
57326
  }
57224
57327
  }
57225
- const truncationWidth = stringWidth(truncationCharacter);
57328
+ const truncationWidth = stringWidth2(truncationCharacter);
57226
57329
  const half = Math.min(Math.floor(columns / 2), Math.max(0, columns - truncationWidth));
57227
57330
  if (preferTruncationOnSpace) {
57228
57331
  const spaceNearFirstBreakPoint = getIndexOfNearestSpace(text, half);
@@ -57233,14 +57336,14 @@ function cliTruncate(text, columns, options = {}) {
57233
57336
  }
57234
57337
  if (position === "end") {
57235
57338
  if (preferTruncationOnSpace) {
57236
- const nearestSpace = getIndexOfNearestSpace(text, columns - stringWidth(truncationCharacter));
57339
+ const nearestSpace = getIndexOfNearestSpace(text, columns - stringWidth2(truncationCharacter));
57237
57340
  const left2 = sliceAnsi(text, 0, nearestSpace);
57238
57341
  return appendWithInheritedStyleFromEnd(left2, truncationCharacter);
57239
57342
  }
57240
57343
  if (space) {
57241
57344
  truncationCharacter = ` ${truncationCharacter}`;
57242
57345
  }
57243
- const left = sliceAnsi(text, 0, columns - stringWidth(truncationCharacter));
57346
+ const left = sliceAnsi(text, 0, columns - stringWidth2(truncationCharacter));
57244
57347
  return appendWithInheritedStyleFromEnd(left, truncationCharacter);
57245
57348
  }
57246
57349
  }
@@ -58852,7 +58955,7 @@ function styledCharsToString(chars) {
58852
58955
  }
58853
58956
 
58854
58957
  // ../../node_modules/.pnpm/@alcalzone+ansi-tokenize@0.3.0/node_modules/@alcalzone/ansi-tokenize/build/tokenize.js
58855
- var segmenter3 = new Intl.Segmenter(void 0, { granularity: "grapheme" });
58958
+ var segmenter4 = new Intl.Segmenter(void 0, { granularity: "grapheme" });
58856
58959
  function isFullwidthGrapheme(grapheme, baseCodePoint) {
58857
58960
  if (isFullwidthCodePoint(baseCodePoint))
58858
58961
  return true;
@@ -58944,7 +59047,7 @@ function tokenize2(str, endChar = Number.POSITIVE_INFINITY) {
58944
59047
  const ret = [];
58945
59048
  let visible = 0;
58946
59049
  let codeEndIndex = 0;
58947
- for (const { segment, index } of segmenter3.segment(str)) {
59050
+ for (const { segment, index } of segmenter4.segment(str)) {
58948
59051
  if (index < codeEndIndex)
58949
59052
  continue;
58950
59053
  const codePoint = segment.codePointAt(0);
@@ -59016,7 +59119,7 @@ var OutputCaches = class {
59016
59119
  getStringWidth(text) {
59017
59120
  let cached = this.widths.get(text);
59018
59121
  if (cached === void 0) {
59019
- cached = stringWidth(text);
59122
+ cached = stringWidth2(text);
59020
59123
  this.widths.set(text, cached);
59021
59124
  }
59022
59125
  return cached;
@@ -62267,7 +62370,7 @@ var InkReadlineAdapter = class extends EventEmitter3 {
62267
62370
  };
62268
62371
 
62269
62372
  // src/commands/chat.ts
62270
- var CLI_VERSION = "0.5.40";
62373
+ var CLI_VERSION = "0.5.41";
62271
62374
  var MODEL_LABELS = {
62272
62375
  turbo: "Nexrall Turbo",
62273
62376
  pro: "Nexrall Pro",
@@ -63673,7 +63776,7 @@ function pluginListCommand() {
63673
63776
 
63674
63777
  // src/index.ts
63675
63778
  var program2 = new Command();
63676
- program2.name("nex").description("Nexrall Code \u2014 AI coding assistant (powered by Nexrall)").version("0.5.40");
63779
+ program2.name("nex").description("Nexrall Code \u2014 AI coding assistant (powered by Nexrall)").version("0.5.41");
63677
63780
  program2.command("auth").description("Login to your Nexrall account").action(authCommand);
63678
63781
  program2.command("logout").description("Log out of your Nexrall account").action(logoutCommand);
63679
63782
  program2.command("update").description("Update nex to the latest version").option("-c, --check", "Check for updates without installing").option("-y, --yes", "Skip confirmation prompt").action(async (opts) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nexrall-code",
3
- "version": "0.5.40",
3
+ "version": "0.5.41",
4
4
  "description": "Nexrall Code — AI coding assistant for your terminal (headless agent for scripts, CI and automation)",
5
5
  "keywords": [
6
6
  "ai",
@@ -40,6 +40,7 @@
40
40
  "prompts": "^2.4.2",
41
41
  "react": "^19.2.8",
42
42
  "readline": "^1.3.0",
43
+ "string-width": "^7.2.0",
43
44
  "@nexrall/code-core": "1.4.22"
44
45
  },
45
46
  "devDependencies": {