4runr-os 2.9.99 → 2.9.101

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.
@@ -1316,9 +1316,9 @@
1316
1316
  "license": "MIT"
1317
1317
  },
1318
1318
  "node_modules/@esbuild/aix-ppc64": {
1319
- "version": "0.27.4",
1320
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.4.tgz",
1321
- "integrity": "sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==",
1319
+ "version": "0.27.5",
1320
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.5.tgz",
1321
+ "integrity": "sha512-nGsF/4C7uzUj+Nj/4J+Zt0bYQ6bz33Phz8Lb2N80Mti1HjGclTJdXZ+9APC4kLvONbjxN1zfvYNd8FEcbBK/MQ==",
1322
1322
  "cpu": [
1323
1323
  "ppc64"
1324
1324
  ],
@@ -1333,9 +1333,9 @@
1333
1333
  }
1334
1334
  },
1335
1335
  "node_modules/@esbuild/android-arm": {
1336
- "version": "0.27.4",
1337
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.4.tgz",
1338
- "integrity": "sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==",
1336
+ "version": "0.27.5",
1337
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.5.tgz",
1338
+ "integrity": "sha512-Cv781jd0Rfj/paoNrul1/r4G0HLvuFKYh7C9uHZ2Pl8YXstzvCyyeWENTFR9qFnRzNMCjXmsulZuvosDg10Mog==",
1339
1339
  "cpu": [
1340
1340
  "arm"
1341
1341
  ],
@@ -1350,9 +1350,9 @@
1350
1350
  }
1351
1351
  },
1352
1352
  "node_modules/@esbuild/android-arm64": {
1353
- "version": "0.27.4",
1354
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.4.tgz",
1355
- "integrity": "sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==",
1353
+ "version": "0.27.5",
1354
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.5.tgz",
1355
+ "integrity": "sha512-Oeghq+XFgh1pUGd1YKs4DDoxzxkoUkvko+T/IVKwlghKLvvjbGFB3ek8VEDBmNvqhwuL0CQS3cExdzpmUyIrgA==",
1356
1356
  "cpu": [
1357
1357
  "arm64"
1358
1358
  ],
@@ -1367,9 +1367,9 @@
1367
1367
  }
1368
1368
  },
1369
1369
  "node_modules/@esbuild/android-x64": {
1370
- "version": "0.27.4",
1371
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.4.tgz",
1372
- "integrity": "sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==",
1370
+ "version": "0.27.5",
1371
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.5.tgz",
1372
+ "integrity": "sha512-nQD7lspbzerlmtNOxYMFAGmhxgzn8Z7m9jgFkh6kpkjsAhZee1w8tJW3ZlW+N9iRePz0oPUDrYrXidCPSImD0Q==",
1373
1373
  "cpu": [
1374
1374
  "x64"
1375
1375
  ],
@@ -1384,9 +1384,9 @@
1384
1384
  }
1385
1385
  },
1386
1386
  "node_modules/@esbuild/darwin-arm64": {
1387
- "version": "0.27.4",
1388
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.4.tgz",
1389
- "integrity": "sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==",
1387
+ "version": "0.27.5",
1388
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.5.tgz",
1389
+ "integrity": "sha512-I+Ya/MgC6rr8oRWGRDF3BXDfP8K1BVUggHqN6VI2lUZLdDi1IM1v2cy0e3lCPbP+pVcK3Tv8cgUhHse1kaNZZw==",
1390
1390
  "cpu": [
1391
1391
  "arm64"
1392
1392
  ],
@@ -1401,9 +1401,9 @@
1401
1401
  }
1402
1402
  },
1403
1403
  "node_modules/@esbuild/darwin-x64": {
1404
- "version": "0.27.4",
1405
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.4.tgz",
1406
- "integrity": "sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==",
1404
+ "version": "0.27.5",
1405
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.5.tgz",
1406
+ "integrity": "sha512-MCjQUtC8wWJn/pIPM7vQaO69BFgwPD1jriEdqwTCKzWjGgkMbcg+M5HzrOhPhuYe1AJjXlHmD142KQf+jnYj8A==",
1407
1407
  "cpu": [
1408
1408
  "x64"
1409
1409
  ],
@@ -1418,9 +1418,9 @@
1418
1418
  }
1419
1419
  },
1420
1420
  "node_modules/@esbuild/freebsd-arm64": {
1421
- "version": "0.27.4",
1422
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.4.tgz",
1423
- "integrity": "sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==",
1421
+ "version": "0.27.5",
1422
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.5.tgz",
1423
+ "integrity": "sha512-X6xVS+goSH0UelYXnuf4GHLwpOdc8rgK/zai+dKzBMnncw7BTQIwquOodE7EKvY2UVUetSqyAfyZC1D+oqLQtg==",
1424
1424
  "cpu": [
1425
1425
  "arm64"
1426
1426
  ],
@@ -1435,9 +1435,9 @@
1435
1435
  }
1436
1436
  },
1437
1437
  "node_modules/@esbuild/freebsd-x64": {
1438
- "version": "0.27.4",
1439
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.4.tgz",
1440
- "integrity": "sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==",
1438
+ "version": "0.27.5",
1439
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.5.tgz",
1440
+ "integrity": "sha512-233X1FGo3a8x1ekLB6XT69LfZ83vqz+9z3TSEQCTYfMNY880A97nr81KbPcAMl9rmOFp11wO0dP+eB18KU/Ucg==",
1441
1441
  "cpu": [
1442
1442
  "x64"
1443
1443
  ],
@@ -1452,9 +1452,9 @@
1452
1452
  }
1453
1453
  },
1454
1454
  "node_modules/@esbuild/linux-arm": {
1455
- "version": "0.27.4",
1456
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.4.tgz",
1457
- "integrity": "sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==",
1455
+ "version": "0.27.5",
1456
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.5.tgz",
1457
+ "integrity": "sha512-0wkVrYHG4sdCCN/bcwQ7yYMXACkaHc3UFeaEOwSVW6e5RycMageYAFv+JS2bKLwHyeKVUvtoVH+5/RHq0fgeFw==",
1458
1458
  "cpu": [
1459
1459
  "arm"
1460
1460
  ],
@@ -1469,9 +1469,9 @@
1469
1469
  }
1470
1470
  },
1471
1471
  "node_modules/@esbuild/linux-arm64": {
1472
- "version": "0.27.4",
1473
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.4.tgz",
1474
- "integrity": "sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==",
1472
+ "version": "0.27.5",
1473
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.5.tgz",
1474
+ "integrity": "sha512-euKkilsNOv7x/M1NKsx5znyprbpsRFIzTV6lWziqJch7yWYayfLtZzDxDTl+LSQDJYAjd9TVb/Kt5UKIrj2e4A==",
1475
1475
  "cpu": [
1476
1476
  "arm64"
1477
1477
  ],
@@ -1486,9 +1486,9 @@
1486
1486
  }
1487
1487
  },
1488
1488
  "node_modules/@esbuild/linux-ia32": {
1489
- "version": "0.27.4",
1490
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.4.tgz",
1491
- "integrity": "sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==",
1489
+ "version": "0.27.5",
1490
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.5.tgz",
1491
+ "integrity": "sha512-hVRQX4+P3MS36NxOy24v/Cdsimy/5HYePw+tmPqnNN1fxV0bPrFWR6TMqwXPwoTM2VzbkA+4lbHWUKDd5ZDA/w==",
1492
1492
  "cpu": [
1493
1493
  "ia32"
1494
1494
  ],
@@ -1503,9 +1503,9 @@
1503
1503
  }
1504
1504
  },
1505
1505
  "node_modules/@esbuild/linux-loong64": {
1506
- "version": "0.27.4",
1507
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.4.tgz",
1508
- "integrity": "sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==",
1506
+ "version": "0.27.5",
1507
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.5.tgz",
1508
+ "integrity": "sha512-mKqqRuOPALI8nDzhOBmIS0INvZOOFGGg5n1osGIXAx8oersceEbKd4t1ACNTHM3sJBXGFAlEgqM+svzjPot+ZQ==",
1509
1509
  "cpu": [
1510
1510
  "loong64"
1511
1511
  ],
@@ -1520,9 +1520,9 @@
1520
1520
  }
1521
1521
  },
1522
1522
  "node_modules/@esbuild/linux-mips64el": {
1523
- "version": "0.27.4",
1524
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.4.tgz",
1525
- "integrity": "sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==",
1523
+ "version": "0.27.5",
1524
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.5.tgz",
1525
+ "integrity": "sha512-EE/QXH9IyaAj1qeuIV5+/GZkBTipgGO782Ff7Um3vPS9cvLhJJeATy4Ggxikz2inZ46KByamMn6GqtqyVjhenA==",
1526
1526
  "cpu": [
1527
1527
  "mips64el"
1528
1528
  ],
@@ -1537,9 +1537,9 @@
1537
1537
  }
1538
1538
  },
1539
1539
  "node_modules/@esbuild/linux-ppc64": {
1540
- "version": "0.27.4",
1541
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.4.tgz",
1542
- "integrity": "sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==",
1540
+ "version": "0.27.5",
1541
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.5.tgz",
1542
+ "integrity": "sha512-0V2iF1RGxBf1b7/BjurA5jfkl7PtySjom1r6xOK2q9KWw/XCpAdtB6KNMO+9xx69yYfSCRR9FE0TyKfHA2eQMw==",
1543
1543
  "cpu": [
1544
1544
  "ppc64"
1545
1545
  ],
@@ -1554,9 +1554,9 @@
1554
1554
  }
1555
1555
  },
1556
1556
  "node_modules/@esbuild/linux-riscv64": {
1557
- "version": "0.27.4",
1558
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.4.tgz",
1559
- "integrity": "sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==",
1557
+ "version": "0.27.5",
1558
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.5.tgz",
1559
+ "integrity": "sha512-rYxThBx6G9HN6tFNuvB/vykeLi4VDsm5hE5pVwzqbAjZEARQrWu3noZSfbEnPZ/CRXP3271GyFk/49up2W190g==",
1560
1560
  "cpu": [
1561
1561
  "riscv64"
1562
1562
  ],
@@ -1571,9 +1571,9 @@
1571
1571
  }
1572
1572
  },
1573
1573
  "node_modules/@esbuild/linux-s390x": {
1574
- "version": "0.27.4",
1575
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.4.tgz",
1576
- "integrity": "sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==",
1574
+ "version": "0.27.5",
1575
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.5.tgz",
1576
+ "integrity": "sha512-uEP2q/4qgd8goEUc4QIdU/1P2NmEtZ/zX5u3OpLlCGhJIuBIv0s0wr7TB2nBrd3/A5XIdEkkS5ZLF0ULuvaaYQ==",
1577
1577
  "cpu": [
1578
1578
  "s390x"
1579
1579
  ],
@@ -1588,9 +1588,9 @@
1588
1588
  }
1589
1589
  },
1590
1590
  "node_modules/@esbuild/linux-x64": {
1591
- "version": "0.27.4",
1592
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.4.tgz",
1593
- "integrity": "sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==",
1591
+ "version": "0.27.5",
1592
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.5.tgz",
1593
+ "integrity": "sha512-+Gq47Wqq6PLOOZuBzVSII2//9yyHNKZLuwfzCemqexqOQCSz0zy0O26kIzyp9EMNMK+nZ0tFHBZrCeVUuMs/ew==",
1594
1594
  "cpu": [
1595
1595
  "x64"
1596
1596
  ],
@@ -1605,9 +1605,9 @@
1605
1605
  }
1606
1606
  },
1607
1607
  "node_modules/@esbuild/netbsd-arm64": {
1608
- "version": "0.27.4",
1609
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.4.tgz",
1610
- "integrity": "sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==",
1608
+ "version": "0.27.5",
1609
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.5.tgz",
1610
+ "integrity": "sha512-3F/5EG8VHfN/I+W5cO1/SV2H9Q/5r7vcHabMnBqhHK2lTWOh3F8vixNzo8lqxrlmBtZVFpW8pmITHnq54+Tq4g==",
1611
1611
  "cpu": [
1612
1612
  "arm64"
1613
1613
  ],
@@ -1622,9 +1622,9 @@
1622
1622
  }
1623
1623
  },
1624
1624
  "node_modules/@esbuild/netbsd-x64": {
1625
- "version": "0.27.4",
1626
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.4.tgz",
1627
- "integrity": "sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==",
1625
+ "version": "0.27.5",
1626
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.5.tgz",
1627
+ "integrity": "sha512-28t+Sj3CPN8vkMOlZotOmDgilQwVvxWZl7b8rxpn73Tt/gCnvrHxQUMng4uu3itdFvrtba/1nHejvxqz8xgEMA==",
1628
1628
  "cpu": [
1629
1629
  "x64"
1630
1630
  ],
@@ -1639,9 +1639,9 @@
1639
1639
  }
1640
1640
  },
1641
1641
  "node_modules/@esbuild/openbsd-arm64": {
1642
- "version": "0.27.4",
1643
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.4.tgz",
1644
- "integrity": "sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==",
1642
+ "version": "0.27.5",
1643
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.5.tgz",
1644
+ "integrity": "sha512-Doz/hKtiuVAi9hMsBMpwBANhIZc8l238U2Onko3t2xUp8xtM0ZKdDYHMnm/qPFVthY8KtxkXaocwmMh6VolzMA==",
1645
1645
  "cpu": [
1646
1646
  "arm64"
1647
1647
  ],
@@ -1656,9 +1656,9 @@
1656
1656
  }
1657
1657
  },
1658
1658
  "node_modules/@esbuild/openbsd-x64": {
1659
- "version": "0.27.4",
1660
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.4.tgz",
1661
- "integrity": "sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==",
1659
+ "version": "0.27.5",
1660
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.5.tgz",
1661
+ "integrity": "sha512-WfGVaa1oz5A7+ZFPkERIbIhKT4olvGl1tyzTRaB5yoZRLqC0KwaO95FeZtOdQj/oKkjW57KcVF944m62/0GYtA==",
1662
1662
  "cpu": [
1663
1663
  "x64"
1664
1664
  ],
@@ -1673,9 +1673,9 @@
1673
1673
  }
1674
1674
  },
1675
1675
  "node_modules/@esbuild/openharmony-arm64": {
1676
- "version": "0.27.4",
1677
- "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.4.tgz",
1678
- "integrity": "sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==",
1676
+ "version": "0.27.5",
1677
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.5.tgz",
1678
+ "integrity": "sha512-Xh+VRuh6OMh3uJ0JkCjI57l+DVe7VRGBYymen8rFPnTVgATBwA6nmToxM2OwTlSvrnWpPKkrQUj93+K9huYC6A==",
1679
1679
  "cpu": [
1680
1680
  "arm64"
1681
1681
  ],
@@ -1690,9 +1690,9 @@
1690
1690
  }
1691
1691
  },
1692
1692
  "node_modules/@esbuild/sunos-x64": {
1693
- "version": "0.27.4",
1694
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz",
1695
- "integrity": "sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==",
1693
+ "version": "0.27.5",
1694
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.5.tgz",
1695
+ "integrity": "sha512-aC1gpJkkaUADHuAdQfuVTnqVUTLqqUNhAvEwHwVWcnVVZvNlDPGA0UveZsfXJJ9T6k9Po4eHi3c02gbdwO3g6w==",
1696
1696
  "cpu": [
1697
1697
  "x64"
1698
1698
  ],
@@ -1707,9 +1707,9 @@
1707
1707
  }
1708
1708
  },
1709
1709
  "node_modules/@esbuild/win32-arm64": {
1710
- "version": "0.27.4",
1711
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz",
1712
- "integrity": "sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==",
1710
+ "version": "0.27.5",
1711
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.5.tgz",
1712
+ "integrity": "sha512-0UNx2aavV0fk6UpZcwXFLztA2r/k9jTUa7OW7SAea1VYUhkug99MW1uZeXEnPn5+cHOd0n8myQay6TlFnBR07w==",
1713
1713
  "cpu": [
1714
1714
  "arm64"
1715
1715
  ],
@@ -1724,9 +1724,9 @@
1724
1724
  }
1725
1725
  },
1726
1726
  "node_modules/@esbuild/win32-ia32": {
1727
- "version": "0.27.4",
1728
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz",
1729
- "integrity": "sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==",
1727
+ "version": "0.27.5",
1728
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.5.tgz",
1729
+ "integrity": "sha512-5nlJ3AeJWCTSzR7AEqVjT/faWyqKU86kCi1lLmxVqmNR+j4HrYdns+eTGjS/vmrzCIe8inGQckUadvS0+JkKdQ==",
1730
1730
  "cpu": [
1731
1731
  "ia32"
1732
1732
  ],
@@ -1741,9 +1741,9 @@
1741
1741
  }
1742
1742
  },
1743
1743
  "node_modules/@esbuild/win32-x64": {
1744
- "version": "0.27.4",
1745
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz",
1746
- "integrity": "sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==",
1744
+ "version": "0.27.5",
1745
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.5.tgz",
1746
+ "integrity": "sha512-PWypQR+d4FLfkhBIV+/kHsUELAnMpx1bRvvsn3p+/sAERbnCzFrtDRG2Xw5n+2zPxBK2+iaP+vetsRl4Ti7WgA==",
1747
1747
  "cpu": [
1748
1748
  "x64"
1749
1749
  ],
@@ -4922,9 +4922,9 @@
4922
4922
  }
4923
4923
  },
4924
4924
  "node_modules/esbuild": {
4925
- "version": "0.27.4",
4926
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.4.tgz",
4927
- "integrity": "sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==",
4925
+ "version": "0.27.5",
4926
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.5.tgz",
4927
+ "integrity": "sha512-zdQoHBjuDqKsvV5OPaWansOwfSQ0Js+Uj9J85TBvj3bFW1JjWTSULMRwdQAc8qMeIScbClxeMK0jlrtB9linhA==",
4928
4928
  "dev": true,
4929
4929
  "hasInstallScript": true,
4930
4930
  "license": "MIT",
@@ -4935,32 +4935,32 @@
4935
4935
  "node": ">=18"
4936
4936
  },
4937
4937
  "optionalDependencies": {
4938
- "@esbuild/aix-ppc64": "0.27.4",
4939
- "@esbuild/android-arm": "0.27.4",
4940
- "@esbuild/android-arm64": "0.27.4",
4941
- "@esbuild/android-x64": "0.27.4",
4942
- "@esbuild/darwin-arm64": "0.27.4",
4943
- "@esbuild/darwin-x64": "0.27.4",
4944
- "@esbuild/freebsd-arm64": "0.27.4",
4945
- "@esbuild/freebsd-x64": "0.27.4",
4946
- "@esbuild/linux-arm": "0.27.4",
4947
- "@esbuild/linux-arm64": "0.27.4",
4948
- "@esbuild/linux-ia32": "0.27.4",
4949
- "@esbuild/linux-loong64": "0.27.4",
4950
- "@esbuild/linux-mips64el": "0.27.4",
4951
- "@esbuild/linux-ppc64": "0.27.4",
4952
- "@esbuild/linux-riscv64": "0.27.4",
4953
- "@esbuild/linux-s390x": "0.27.4",
4954
- "@esbuild/linux-x64": "0.27.4",
4955
- "@esbuild/netbsd-arm64": "0.27.4",
4956
- "@esbuild/netbsd-x64": "0.27.4",
4957
- "@esbuild/openbsd-arm64": "0.27.4",
4958
- "@esbuild/openbsd-x64": "0.27.4",
4959
- "@esbuild/openharmony-arm64": "0.27.4",
4960
- "@esbuild/sunos-x64": "0.27.4",
4961
- "@esbuild/win32-arm64": "0.27.4",
4962
- "@esbuild/win32-ia32": "0.27.4",
4963
- "@esbuild/win32-x64": "0.27.4"
4938
+ "@esbuild/aix-ppc64": "0.27.5",
4939
+ "@esbuild/android-arm": "0.27.5",
4940
+ "@esbuild/android-arm64": "0.27.5",
4941
+ "@esbuild/android-x64": "0.27.5",
4942
+ "@esbuild/darwin-arm64": "0.27.5",
4943
+ "@esbuild/darwin-x64": "0.27.5",
4944
+ "@esbuild/freebsd-arm64": "0.27.5",
4945
+ "@esbuild/freebsd-x64": "0.27.5",
4946
+ "@esbuild/linux-arm": "0.27.5",
4947
+ "@esbuild/linux-arm64": "0.27.5",
4948
+ "@esbuild/linux-ia32": "0.27.5",
4949
+ "@esbuild/linux-loong64": "0.27.5",
4950
+ "@esbuild/linux-mips64el": "0.27.5",
4951
+ "@esbuild/linux-ppc64": "0.27.5",
4952
+ "@esbuild/linux-riscv64": "0.27.5",
4953
+ "@esbuild/linux-s390x": "0.27.5",
4954
+ "@esbuild/linux-x64": "0.27.5",
4955
+ "@esbuild/netbsd-arm64": "0.27.5",
4956
+ "@esbuild/netbsd-x64": "0.27.5",
4957
+ "@esbuild/openbsd-arm64": "0.27.5",
4958
+ "@esbuild/openbsd-x64": "0.27.5",
4959
+ "@esbuild/openharmony-arm64": "0.27.5",
4960
+ "@esbuild/sunos-x64": "0.27.5",
4961
+ "@esbuild/win32-arm64": "0.27.5",
4962
+ "@esbuild/win32-ia32": "0.27.5",
4963
+ "@esbuild/win32-x64": "0.27.5"
4964
4964
  }
4965
4965
  },
4966
4966
  "node_modules/escalade": {
@@ -7593,9 +7593,9 @@
7593
7593
  "license": "MIT"
7594
7594
  },
7595
7595
  "node_modules/node-releases": {
7596
- "version": "2.0.36",
7597
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz",
7598
- "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==",
7596
+ "version": "2.0.37",
7597
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.37.tgz",
7598
+ "integrity": "sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==",
7599
7599
  "dev": true,
7600
7600
  "license": "MIT"
7601
7601
  },
@@ -5,7 +5,7 @@ use crate::ui::agent_builder::AgentBuilderState;
5
5
  use crate::ui::run_manager::RunManagerState;
6
6
  use crate::ui::settings::SettingsState;
7
7
  use crate::websocket::WebSocketClient;
8
- use crossterm::event::{KeyEvent, KeyCode};
8
+ use crossterm::event::{KeyCode, KeyEvent, KeyEventKind};
9
9
  use ratatui::prelude::*;
10
10
  use serde::{Deserialize, Serialize};
11
11
  use std::collections::VecDeque;
@@ -667,7 +667,7 @@ impl App {
667
667
  }
668
668
  }
669
669
  self.state.logs.push_back("[NAV] Opening Setup Portal (F2)...".into());
670
- self.request_render("open_setup_portal");
670
+ self.request_immediate_render("open_setup_portal");
671
671
  }
672
672
  // Typing - ALL characters go to command input (immediate render for responsiveness)
673
673
  KeyCode::Char(c) => {
@@ -808,7 +808,7 @@ impl App {
808
808
  self.state.navigation.navigate_to_base(Screen::ConnectionPortal);
809
809
  self.state.connection_portal.reset();
810
810
  self.state.logs.push_back("[NAV] Opening Connection Portal...".into());
811
- self.request_render("open_connection_portal");
811
+ self.request_immediate_render("open_connection_portal");
812
812
  }
813
813
  "setup" | "setup gateway" | "setup portal" => {
814
814
  // Navigate to portal as base screen (standalone, not overlay)
@@ -830,7 +830,7 @@ impl App {
830
830
  }
831
831
 
832
832
  self.state.logs.push_back("[NAV] Opening Setup Portal...".into());
833
- self.request_render("open_setup_portal");
833
+ self.request_immediate_render("open_setup_portal");
834
834
  }
835
835
  "disconnect" => {
836
836
  // Disconnect from Gateway
@@ -1814,7 +1814,7 @@ impl App {
1814
1814
  // Navigate back to Main (portals are now base screens, not overlays)
1815
1815
  self.state.navigation.navigate_to_base(Screen::Main);
1816
1816
  self.add_log("[NAV] Connection Portal closed".to_string());
1817
- self.request_render("portal_close");
1817
+ self.request_immediate_render("portal_close");
1818
1818
  }
1819
1819
 
1820
1820
  // L - Continue in local-only mode (no Gateway connection)
@@ -1836,13 +1836,13 @@ impl App {
1836
1836
  // Tab - Switch between URL and Username fields
1837
1837
  KeyCode::Tab | KeyCode::BackTab => {
1838
1838
  self.state.connection_portal.toggle_field();
1839
- self.request_render("portal_field_toggle");
1839
+ self.request_immediate_render("portal_field_toggle");
1840
1840
  }
1841
1841
 
1842
1842
  // Up/Down - Navigate between fields
1843
1843
  KeyCode::Up | KeyCode::Down => {
1844
1844
  self.state.connection_portal.toggle_field();
1845
- self.request_render("portal_navigate");
1845
+ self.request_immediate_render("portal_navigate");
1846
1846
  }
1847
1847
 
1848
1848
  // Enter - Connect to Gateway
@@ -1852,13 +1852,13 @@ impl App {
1852
1852
  // Validate URL
1853
1853
  if url.is_empty() {
1854
1854
  self.state.connection_portal.error = Some("Gateway URL is required".to_string());
1855
- self.request_render("portal_error");
1855
+ self.request_immediate_render("portal_error");
1856
1856
  return Ok(false);
1857
1857
  }
1858
1858
 
1859
1859
  if !url.starts_with("http://") && !url.starts_with("https://") {
1860
1860
  self.state.connection_portal.error = Some("URL must start with http:// or https://".to_string());
1861
- self.request_render("portal_error");
1861
+ self.request_immediate_render("portal_error");
1862
1862
  return Ok(false);
1863
1863
  }
1864
1864
 
@@ -1948,6 +1948,11 @@ impl App {
1948
1948
  return Ok(false);
1949
1949
  }
1950
1950
 
1951
+ // Belt-and-suspenders: only Press for navigation (ESC Release handled in main loop + above).
1952
+ if key.kind != KeyEventKind::Press {
1953
+ return Ok(false);
1954
+ }
1955
+
1951
1956
  // Don't process other keys while detecting
1952
1957
  if self.state.setup_portal.detecting {
1953
1958
  return Ok(false);
@@ -76,6 +76,8 @@ fn main() -> Result<()> {
76
76
 
77
77
  // Track previous screen to detect portal navigation
78
78
  let mut previous_screen: Option<crate::screens::Screen> = None;
79
+ /// Last terminal size while Connection or Setup portal is visible (windowed hosts: sync buffer + clear on dimension drift).
80
+ let mut standalone_portal_last_terminal_dims: Option<(u16, u16)> = None;
79
81
 
80
82
  // Force initial render
81
83
  app.request_render("initial");
@@ -694,6 +696,12 @@ fn main() -> Result<()> {
694
696
  if app.should_render() {
695
697
  // Clone current screen before mutable borrow
696
698
  let current_screen = app.state.navigation.current_screen().clone();
699
+ if !matches!(
700
+ current_screen,
701
+ crate::screens::Screen::ConnectionPortal | crate::screens::Screen::SetupPortal
702
+ ) {
703
+ standalone_portal_last_terminal_dims = None;
704
+ }
697
705
  let _is_portal_active = matches!(current_screen, crate::screens::Screen::ConnectionPortal | crate::screens::Screen::SetupPortal);
698
706
 
699
707
  // Clear only on screen switch (but not when switching TO Setup Portal; we'll clear after autoresize)
@@ -713,14 +721,21 @@ fn main() -> Result<()> {
713
721
  terminal.clear()?;
714
722
  }
715
723
 
716
- // Setup Portal: autoresize every frame (correct buffer size); clear only on ENTER to avoid flicker.
717
- // See docs/SETUP-PORTAL-WINDOWED-FIX-PLAN.md. If corruption appears on window resize while
718
- // portal is open, add clear when terminal size changed from last frame.
719
- let on_setup_portal = matches!(current_screen, crate::screens::Screen::SetupPortal);
720
- if on_setup_portal {
724
+ // Connection + Setup portals: autoresize every frame (windowed CMD/conhost buffer vs viewport drift).
725
+ // Clear on Setup entry (generic switch clear is skipped for Setup); clear when terminal dimensions
726
+ // change while either portal is open. See docs/SETUP-PORTAL-WINDOWED-FIX-PLAN.md.
727
+ let on_standalone_portal = matches!(
728
+ current_screen,
729
+ crate::screens::Screen::ConnectionPortal | crate::screens::Screen::SetupPortal
730
+ );
731
+ if on_standalone_portal {
721
732
  terminal.autoresize()?;
733
+ let dims = match terminal.size() {
734
+ Ok(s) => (s.width, s.height),
735
+ Err(_) => (0, 0),
736
+ };
722
737
  if switching_to_setup_portal {
723
- debug_log::log_flicker_debug("CLEAR_BEFORE", "enter");
738
+ debug_log::log_flicker_debug("CLEAR_BEFORE", "enter_setup");
724
739
  terminal.clear()?;
725
740
  #[cfg(debug_assertions)]
726
741
  eprintln!("[MAIN] ENTERED Setup Portal (autoresize + clear)");
@@ -728,6 +743,15 @@ fn main() -> Result<()> {
728
743
  &format!("{:?}", previous_screen.as_ref().unwrap_or(&current_screen)),
729
744
  &format!("{:?}", current_screen),
730
745
  );
746
+ standalone_portal_last_terminal_dims = Some(dims);
747
+ } else if let Some(last) = standalone_portal_last_terminal_dims {
748
+ if last != dims {
749
+ debug_log::log_flicker_debug("CLEAR_BEFORE", "size_change");
750
+ terminal.clear()?;
751
+ }
752
+ standalone_portal_last_terminal_dims = Some(dims);
753
+ } else {
754
+ standalone_portal_last_terminal_dims = Some(dims);
731
755
  }
732
756
  }
733
757
 
@@ -735,7 +759,7 @@ fn main() -> Result<()> {
735
759
  terminal.draw(|f| app.render(f))?;
736
760
  let render_duration = render_start.elapsed().as_millis() as u64;
737
761
  app.record_render(render_duration);
738
- if on_setup_portal {
762
+ if on_standalone_portal {
739
763
  debug_log::log_flicker_debug("DRAW_DONE", &format!("ms={}", render_duration));
740
764
  }
741
765
 
@@ -753,7 +777,7 @@ fn main() -> Result<()> {
753
777
  app.state.setup_portal.detecting_since = None;
754
778
  app.state.setup_portal.error = Some("Detection timed out. Press ESC to close or try again.".to_string());
755
779
  app.add_log("[SETUP] Detection timed out".to_string());
756
- app.request_render("setup_detect_timeout");
780
+ app.request_immediate_render("setup_detect_timeout");
757
781
  }
758
782
  }
759
783
  }
@@ -766,9 +790,13 @@ fn main() -> Result<()> {
766
790
  // Handle ESC on both Press and Release so we never miss it (e.g. when stuck on "Detecting...")
767
791
  if crossterm::event::poll(Duration::from_millis(1))? {
768
792
  let on_setup = app.state.navigation.current_screen() == &screens::Screen::SetupPortal;
793
+ let on_standalone_input = matches!(
794
+ app.state.navigation.current_screen(),
795
+ &screens::Screen::ConnectionPortal | &screens::Screen::SetupPortal
796
+ );
769
797
  match event::read()? {
770
798
  Event::Key(key) => {
771
- if on_setup {
799
+ if on_standalone_input {
772
800
  debug_log::log_input("Key", &format!("{:?}", key));
773
801
  }
774
802
  let should_handle = key.kind == KeyEventKind::Press
@@ -780,7 +808,7 @@ fn main() -> Result<()> {
780
808
  }
781
809
  }
782
810
  Event::Mouse(mouse) => {
783
- if on_setup {
811
+ if on_standalone_input {
784
812
  debug_log::log_input("Mouse", &format!("{:?}", mouse));
785
813
  }
786
814
  // Handle mouse scroll events for Setup Portal
@@ -789,11 +817,11 @@ fn main() -> Result<()> {
789
817
  match mouse.kind {
790
818
  MouseEventKind::ScrollUp => {
791
819
  app.state.setup_portal.cycle_option(-1);
792
- app.request_render("setup_portal_scroll_up");
820
+ app.request_immediate_render("setup_portal_scroll_up");
793
821
  }
794
822
  MouseEventKind::ScrollDown => {
795
823
  app.state.setup_portal.cycle_option(1);
796
- app.request_render("setup_portal_scroll_down");
824
+ app.request_immediate_render("setup_portal_scroll_down");
797
825
  }
798
826
  _ => {}
799
827
  }
@@ -801,7 +829,7 @@ fn main() -> Result<()> {
801
829
  }
802
830
  }
803
831
  Event::Resize(w, h) => {
804
- if on_setup {
832
+ if on_standalone_input {
805
833
  debug_log::log_input("Resize", &format!("{}x{}", w, h));
806
834
  }
807
835
  // Terminal was resized - force immediate re-render with correct dimensions
@@ -188,6 +188,8 @@ fn render_input_fields(f: &mut Frame, area: Rect, state: &AppState) {
188
188
  let block = Block::default().title(" Gateway URL ").borders(Borders::ALL).border_style(Style::default().fg(NEON_GREEN)).style(Style::default().bg(BG_PANEL));
189
189
  let inner = block.inner(area);
190
190
  f.render_widget(block, area);
191
+ // Solid fill inside border (windowed conhost: avoids ghost text when style/focus changes)
192
+ f.render_widget(Block::default().style(Style::default().bg(BG_PANEL)), inner);
191
193
  f.render_widget(Paragraph::new(format!("Connected to {}", short)).style(Style::default().fg(NEON_GREEN)).alignment(Alignment::Center), inner);
192
194
  return;
193
195
  }
@@ -218,6 +220,8 @@ fn render_input_fields(f: &mut Frame, area: Rect, state: &AppState) {
218
220
 
219
221
  let inner = block.inner(area);
220
222
  f.render_widget(block, area);
223
+ // Solid fill inside border (windowed terminals: repaint every cell before URL text)
224
+ f.render_widget(Block::default().style(Style::default().bg(BG_PANEL)), inner);
221
225
 
222
226
  // Render the URL text inside the block
223
227
  let text = Paragraph::new(url_display)
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "4runr-os",
3
- "version": "2.9.99",
3
+ "version": "2.9.101",
4
4
  "type": "module",
5
- "description": "4Runr AI Agent OS - Secure terminal interface for AI agents. v2.9.98: npm publish bundle Windows auto-update (npm-spawn / npm-cli.js), copy-mk3 + debug_log.rs, mk3 Rust fixes, vendored gateway. ⚠️ Pre-MVP / Development Phase",
5
+ "description": "4Runr AI Agent OS - Secure terminal interface for AI agents. v2.9.101: Connection Portal windowed ghost fix (autoresize + size-drift clear, URL inner fill), immediate render on portal open. ⚠️ Pre-MVP / Development Phase",
6
6
  "main": "dist/index.js",
7
7
  "bin": {
8
8
  "4runr": "dist/index.js",