@iinm/plain-agent 1.10.3 → 1.10.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -1
- package/src/cli/eastAsianWideRanges.json +124 -0
- package/src/cli/formatter.mjs +20 -98
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iinm/plain-agent",
|
|
3
|
-
"version": "1.10.
|
|
3
|
+
"version": "1.10.4",
|
|
4
4
|
"description": "A lightweight CLI-based coding agent",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"config",
|
|
20
20
|
"src/**/*.mjs",
|
|
21
21
|
"src/**/*.d.ts",
|
|
22
|
+
"src/**/*.json",
|
|
22
23
|
"!src/**/*.test.mjs",
|
|
23
24
|
"!src/**/*.test.*.mjs",
|
|
24
25
|
"!src/**/*.playground.mjs",
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
[
|
|
2
|
+
[4352, 4447],
|
|
3
|
+
[8986, 8987],
|
|
4
|
+
[9001, 9002],
|
|
5
|
+
[9193, 9196],
|
|
6
|
+
[9200, 9200],
|
|
7
|
+
[9203, 9203],
|
|
8
|
+
[9725, 9726],
|
|
9
|
+
[9748, 9749],
|
|
10
|
+
[9776, 9783],
|
|
11
|
+
[9800, 9811],
|
|
12
|
+
[9855, 9855],
|
|
13
|
+
[9866, 9871],
|
|
14
|
+
[9875, 9875],
|
|
15
|
+
[9889, 9889],
|
|
16
|
+
[9898, 9899],
|
|
17
|
+
[9917, 9918],
|
|
18
|
+
[9924, 9925],
|
|
19
|
+
[9934, 9934],
|
|
20
|
+
[9940, 9940],
|
|
21
|
+
[9962, 9962],
|
|
22
|
+
[9970, 9971],
|
|
23
|
+
[9973, 9973],
|
|
24
|
+
[9978, 9978],
|
|
25
|
+
[9981, 9981],
|
|
26
|
+
[9989, 9989],
|
|
27
|
+
[9994, 9995],
|
|
28
|
+
[10024, 10024],
|
|
29
|
+
[10060, 10060],
|
|
30
|
+
[10062, 10062],
|
|
31
|
+
[10067, 10069],
|
|
32
|
+
[10071, 10071],
|
|
33
|
+
[10133, 10135],
|
|
34
|
+
[10160, 10160],
|
|
35
|
+
[10175, 10175],
|
|
36
|
+
[11035, 11036],
|
|
37
|
+
[11088, 11088],
|
|
38
|
+
[11093, 11093],
|
|
39
|
+
[11904, 11929],
|
|
40
|
+
[11931, 12019],
|
|
41
|
+
[12032, 12245],
|
|
42
|
+
[12272, 12350],
|
|
43
|
+
[12353, 12438],
|
|
44
|
+
[12441, 12543],
|
|
45
|
+
[12549, 12591],
|
|
46
|
+
[12593, 12686],
|
|
47
|
+
[12688, 12773],
|
|
48
|
+
[12783, 12830],
|
|
49
|
+
[12832, 12871],
|
|
50
|
+
[12880, 42124],
|
|
51
|
+
[42128, 42182],
|
|
52
|
+
[43360, 43388],
|
|
53
|
+
[44032, 55203],
|
|
54
|
+
[63744, 64255],
|
|
55
|
+
[65040, 65049],
|
|
56
|
+
[65072, 65106],
|
|
57
|
+
[65108, 65126],
|
|
58
|
+
[65128, 65131],
|
|
59
|
+
[65281, 65376],
|
|
60
|
+
[65504, 65510],
|
|
61
|
+
[94176, 94180],
|
|
62
|
+
[94192, 94193],
|
|
63
|
+
[94208, 100343],
|
|
64
|
+
[100352, 101589],
|
|
65
|
+
[101631, 101640],
|
|
66
|
+
[110576, 110579],
|
|
67
|
+
[110581, 110587],
|
|
68
|
+
[110589, 110590],
|
|
69
|
+
[110592, 110882],
|
|
70
|
+
[110898, 110898],
|
|
71
|
+
[110928, 110930],
|
|
72
|
+
[110933, 110933],
|
|
73
|
+
[110948, 110951],
|
|
74
|
+
[110960, 111355],
|
|
75
|
+
[119552, 119638],
|
|
76
|
+
[119648, 119670],
|
|
77
|
+
[126980, 126980],
|
|
78
|
+
[127183, 127183],
|
|
79
|
+
[127374, 127374],
|
|
80
|
+
[127377, 127386],
|
|
81
|
+
[127488, 127490],
|
|
82
|
+
[127504, 127547],
|
|
83
|
+
[127552, 127560],
|
|
84
|
+
[127568, 127569],
|
|
85
|
+
[127584, 127589],
|
|
86
|
+
[127744, 127776],
|
|
87
|
+
[127789, 127797],
|
|
88
|
+
[127799, 127868],
|
|
89
|
+
[127870, 127891],
|
|
90
|
+
[127904, 127946],
|
|
91
|
+
[127951, 127955],
|
|
92
|
+
[127968, 127984],
|
|
93
|
+
[127988, 127988],
|
|
94
|
+
[127992, 128062],
|
|
95
|
+
[128064, 128064],
|
|
96
|
+
[128066, 128252],
|
|
97
|
+
[128255, 128317],
|
|
98
|
+
[128331, 128334],
|
|
99
|
+
[128336, 128359],
|
|
100
|
+
[128378, 128378],
|
|
101
|
+
[128405, 128406],
|
|
102
|
+
[128420, 128420],
|
|
103
|
+
[128507, 128591],
|
|
104
|
+
[128640, 128709],
|
|
105
|
+
[128716, 128716],
|
|
106
|
+
[128720, 128722],
|
|
107
|
+
[128725, 128727],
|
|
108
|
+
[128732, 128735],
|
|
109
|
+
[128747, 128748],
|
|
110
|
+
[128756, 128764],
|
|
111
|
+
[128992, 129003],
|
|
112
|
+
[129008, 129008],
|
|
113
|
+
[129292, 129338],
|
|
114
|
+
[129340, 129349],
|
|
115
|
+
[129351, 129535],
|
|
116
|
+
[129648, 129660],
|
|
117
|
+
[129664, 129673],
|
|
118
|
+
[129679, 129734],
|
|
119
|
+
[129742, 129756],
|
|
120
|
+
[129759, 129769],
|
|
121
|
+
[129776, 129784],
|
|
122
|
+
[131072, 196605],
|
|
123
|
+
[196608, 262141]
|
|
124
|
+
]
|
package/src/cli/formatter.mjs
CHANGED
|
@@ -640,110 +640,32 @@ function wrapCell(text, width) {
|
|
|
640
640
|
return lines;
|
|
641
641
|
}
|
|
642
642
|
|
|
643
|
+
/**
|
|
644
|
+
* Sorted, merged [start, end] ranges of Unicode code points with
|
|
645
|
+
* East_Asian_Width property "W" (Wide) or "F" (Fullwidth).
|
|
646
|
+
*
|
|
647
|
+
* Generated by: node scripts/fetchEastAsianWideRanges.mjs
|
|
648
|
+
* Source: https://www.unicode.org/Public/16.0.0/ucd/EastAsianWidth.txt
|
|
649
|
+
*/
|
|
650
|
+
import WIDE_RANGES from "./eastAsianWideRanges.json" with { type: "json" };
|
|
651
|
+
|
|
643
652
|
/**
|
|
644
653
|
* Check if a Unicode code point is a wide (double-width) character.
|
|
645
|
-
*
|
|
654
|
+
* Uses binary search over the sorted WIDE_RANGES for efficiency.
|
|
646
655
|
* @param {number} code
|
|
647
656
|
* @returns {boolean}
|
|
648
657
|
*/
|
|
649
658
|
function isWideChar(code) {
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
(code
|
|
656
|
-
(code
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
(code >= 0x2630 && code <= 0x2637) ||
|
|
661
|
-
(code >= 0x2648 && code <= 0x2653) ||
|
|
662
|
-
code === 0x267f ||
|
|
663
|
-
(code >= 0x268a && code <= 0x268f) ||
|
|
664
|
-
code === 0x2693 ||
|
|
665
|
-
code === 0x26a1 ||
|
|
666
|
-
(code >= 0x26aa && code <= 0x26ab) ||
|
|
667
|
-
(code >= 0x26bd && code <= 0x26be) ||
|
|
668
|
-
(code >= 0x26c4 && code <= 0x26c5) ||
|
|
669
|
-
code === 0x26ce ||
|
|
670
|
-
code === 0x26d4 ||
|
|
671
|
-
code === 0x26ea ||
|
|
672
|
-
(code >= 0x26f2 && code <= 0x26f3) ||
|
|
673
|
-
code === 0x26f5 ||
|
|
674
|
-
code === 0x26fa ||
|
|
675
|
-
code === 0x26fd ||
|
|
676
|
-
code === 0x2705 ||
|
|
677
|
-
(code >= 0x270a && code <= 0x270b) ||
|
|
678
|
-
code === 0x2728 ||
|
|
679
|
-
code === 0x274c ||
|
|
680
|
-
code === 0x274e ||
|
|
681
|
-
(code >= 0x2753 && code <= 0x2755) ||
|
|
682
|
-
code === 0x2757 ||
|
|
683
|
-
(code >= 0x2795 && code <= 0x2797) ||
|
|
684
|
-
code === 0x27b0 ||
|
|
685
|
-
code === 0x27bf ||
|
|
686
|
-
(code >= 0x2b1b && code <= 0x2b1c) ||
|
|
687
|
-
code === 0x2b50 ||
|
|
688
|
-
code === 0x2b55 ||
|
|
689
|
-
(code >= 0x231a && code <= 0x231b) ||
|
|
690
|
-
code === 0x2329 ||
|
|
691
|
-
code === 0x232a ||
|
|
692
|
-
(code >= 0x23e9 && code <= 0x23ec) ||
|
|
693
|
-
code === 0x23f0 ||
|
|
694
|
-
code === 0x23f3 ||
|
|
695
|
-
code === 0x1f004 ||
|
|
696
|
-
code === 0x1f0cf ||
|
|
697
|
-
code === 0x1f18e ||
|
|
698
|
-
(code >= 0x1f191 && code <= 0x1f19a) ||
|
|
699
|
-
(code >= 0x1f200 && code <= 0x1f202) ||
|
|
700
|
-
(code >= 0x1f210 && code <= 0x1f23b) ||
|
|
701
|
-
(code >= 0x1f240 && code <= 0x1f248) ||
|
|
702
|
-
(code >= 0x1f250 && code <= 0x1f251) ||
|
|
703
|
-
(code >= 0x1f260 && code <= 0x1f265) ||
|
|
704
|
-
(code >= 0x1f300 && code <= 0x1f320) ||
|
|
705
|
-
(code >= 0x1f32d && code <= 0x1f335) ||
|
|
706
|
-
(code >= 0x1f337 && code <= 0x1f37c) ||
|
|
707
|
-
(code >= 0x1f37e && code <= 0x1f393) ||
|
|
708
|
-
(code >= 0x1f3a0 && code <= 0x1f3ca) ||
|
|
709
|
-
(code >= 0x1f3cf && code <= 0x1f3d3) ||
|
|
710
|
-
(code >= 0x1f3e0 && code <= 0x1f3f0) ||
|
|
711
|
-
code === 0x1f3f4 ||
|
|
712
|
-
(code >= 0x1f3f8 && code <= 0x1f3fa) ||
|
|
713
|
-
(code >= 0x1f3fb && code <= 0x1f3ff) ||
|
|
714
|
-
(code >= 0x1f400 && code <= 0x1f43e) ||
|
|
715
|
-
code === 0x1f440 ||
|
|
716
|
-
(code >= 0x1f442 && code <= 0x1f4fc) ||
|
|
717
|
-
(code >= 0x1f4ff && code <= 0x1f53d) ||
|
|
718
|
-
(code >= 0x1f54b && code <= 0x1f54e) ||
|
|
719
|
-
(code >= 0x1f550 && code <= 0x1f567) ||
|
|
720
|
-
code === 0x1f57a ||
|
|
721
|
-
(code >= 0x1f595 && code <= 0x1f596) ||
|
|
722
|
-
code === 0x1f5a4 ||
|
|
723
|
-
(code >= 0x1f5fb && code <= 0x1f5ff) ||
|
|
724
|
-
(code >= 0x1f600 && code <= 0x1f64f) ||
|
|
725
|
-
(code >= 0x1f680 && code <= 0x1f6c5) ||
|
|
726
|
-
code === 0x1f6cc ||
|
|
727
|
-
(code >= 0x1f6d0 && code <= 0x1f6d2) ||
|
|
728
|
-
(code >= 0x1f6d5 && code <= 0x1f6d8) ||
|
|
729
|
-
(code >= 0x1f6dc && code <= 0x1f6df) ||
|
|
730
|
-
(code >= 0x1f6eb && code <= 0x1f6ec) ||
|
|
731
|
-
(code >= 0x1f6f4 && code <= 0x1f6fc) ||
|
|
732
|
-
(code >= 0x1f7e0 && code <= 0x1f7eb) ||
|
|
733
|
-
code === 0x1f7f0 ||
|
|
734
|
-
(code >= 0x1f90c && code <= 0x1f93a) ||
|
|
735
|
-
(code >= 0x1f93c && code <= 0x1f945) ||
|
|
736
|
-
(code >= 0x1f947 && code <= 0x1f9ff) ||
|
|
737
|
-
(code >= 0x1fa70 && code <= 0x1fa7c) ||
|
|
738
|
-
(code >= 0x1fa80 && code <= 0x1fa8a) ||
|
|
739
|
-
(code >= 0x1fa8e && code <= 0x1fac6) ||
|
|
740
|
-
code === 0x1fac8 ||
|
|
741
|
-
(code >= 0x1facd && code <= 0x1fadc) ||
|
|
742
|
-
(code >= 0x1fadf && code <= 0x1faea) ||
|
|
743
|
-
(code >= 0x1faef && code <= 0x1faf8) ||
|
|
744
|
-
(code >= 0x20000 && code <= 0x2fffd) ||
|
|
745
|
-
(code >= 0x30000 && code <= 0x3fffd)
|
|
746
|
-
);
|
|
659
|
+
let lo = 0;
|
|
660
|
+
let hi = WIDE_RANGES.length - 1;
|
|
661
|
+
while (lo <= hi) {
|
|
662
|
+
const mid = (lo + hi) >>> 1;
|
|
663
|
+
const [start, end] = WIDE_RANGES[mid];
|
|
664
|
+
if (code < start) hi = mid - 1;
|
|
665
|
+
else if (code > end) lo = mid + 1;
|
|
666
|
+
else return true;
|
|
667
|
+
}
|
|
668
|
+
return false;
|
|
747
669
|
}
|
|
748
670
|
|
|
749
671
|
/**
|