@uehaj/sys1grep 0.5.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -0
- package/README.ja.md +775 -0
- package/README.md +799 -0
- package/docs/color.svg +15 -0
- package/docs/demo.svg +83 -0
- package/docs/sentence.svg +14 -0
- package/git-sys1grep.mjs +4 -0
- package/package.json +44 -0
- package/sys1grep.mjs +1347 -0
package/docs/color.svg
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1093.7600000000002" height="225" font-family="SFMono-Regular,Menlo,Consolas,monospace" font-size="13">
|
|
2
|
+
<rect width="100%" height="100%" rx="6" fill="#1e1e2e"/>
|
|
3
|
+
<g fill="#cdd6f4">
|
|
4
|
+
<text x="16" y="29" xml:space="preserve">$ sys1grep -n -p --color=always -t 0.6 -T 0.4 -e "ネットワークやリモート接続の障害" -e "customer is asking for a refund" tests/corpus.txt</text>
|
|
5
|
+
<text x="16" y="49" xml:space="preserve"><tspan fill="#8ce99a">4</tspan><tspan fill="#66d9e8">:</tspan>2026-09-19 08:02:30 ERROR connection reset by peer while calling payment-gateway [<tspan fill="#8ce99a">0.95</tspan> <tspan fill="#ff6b6b">0.01</tspan>]</text>
|
|
6
|
+
<text x="16" y="69" xml:space="preserve"><tspan fill="#8ce99a">5</tspan><tspan fill="#66d9e8">:</tspan>2026-09-19 08:02:31 INFO retrying payment-gateway request (attempt 2/3) [<tspan fill="#8ce99a">0.73</tspan> <tspan fill="#ff6b6b">0.01</tspan>]</text>
|
|
7
|
+
<text x="16" y="89" xml:space="preserve"><tspan fill="#8ce99a">6</tspan><tspan fill="#66d9e8">:</tspan>2026-09-19 08:02:35 ERROR timeout after 5000ms waiting for payment-gateway [<tspan fill="#8ce99a">0.89</tspan> <tspan fill="#ff6b6b">0.01</tspan>]</text>
|
|
8
|
+
<text x="16" y="109" xml:space="preserve"><tspan fill="#8ce99a">9</tspan><tspan fill="#66d9e8">:</tspan>2026-09-19 08:10:44 ERROR DNS lookup failed for api.example.com [<tspan fill="#8ce99a">0.81</tspan> <tspan fill="#ff6b6b">0.01</tspan>]</text>
|
|
9
|
+
<text x="16" y="129" xml:space="preserve"><tspan fill="#8ce99a">13</tspan><tspan fill="#66d9e8">:</tspan>network unreachable: no route to host 10.0.0.5 [<tspan fill="#8ce99a">0.96</tspan> <tspan fill="#ff6b6b">0.01</tspan>]</text>
|
|
10
|
+
<text x="16" y="149" xml:space="preserve"><tspan fill="#8ce99a">14</tspan><tspan fill="#66d9e8">:</tspan>ユーザー山田さんからの問い合わせ: 返金してほしい、商品が壊れていた [<tspan fill="#ff6b6b">0.02</tspan> <tspan fill="#8ce99a">0.99</tspan>]</text>
|
|
11
|
+
<text x="16" y="169" xml:space="preserve"><tspan fill="#8ce99a">18</tspan><tspan fill="#66d9e8">:</tspan>I want my money back. The item arrived broken and customer service ignored me. [<tspan fill="#ff6b6b">0.02</tspan> <tspan fill="#8ce99a">0.98</tspan>]</text>
|
|
12
|
+
<text x="16" y="189" xml:space="preserve"><tspan fill="#8ce99a">30</tspan><tspan fill="#66d9e8">:</tspan>except ConnectionError as e: [<tspan fill="#8ce99a">0.61</tspan> <tspan fill="#ff6b6b">0.01</tspan>]</text>
|
|
13
|
+
<text x="16" y="209" xml:space="preserve"><tspan fill="#8ce99a">31</tspan><tspan fill="#66d9e8">:</tspan> logger.error("upstream unreachable: %s", e) [<tspan fill="#8ce99a">0.91</tspan> <tspan fill="#ff6b6b">0.01</tspan>]</text>
|
|
14
|
+
</g>
|
|
15
|
+
</svg>
|
package/docs/demo.svg
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="920" height="420" viewBox="0 0 920 420" font-family="SFMono-Regular,Menlo,Consolas,monospace" font-size="13">
|
|
2
|
+
<title>sys1grep demo: Ask in one language, find every language / Propositions, not topics / -Q finds the answer</title>
|
|
3
|
+
<style>
|
|
4
|
+
.a{opacity:0}
|
|
5
|
+
.l0{animation:l0 30.75s linear infinite}@keyframes l0{0%,0.000%{opacity:0}0.488%,28.943%{opacity:1}29.919%,100%{opacity:0}}
|
|
6
|
+
.l1{animation:l1 30.75s linear infinite}@keyframes l1{0%,1.138%{opacity:0}1.626%,28.943%{opacity:1}29.919%,100%{opacity:0}}
|
|
7
|
+
.l2{animation:l2 30.75s linear infinite}@keyframes l2{0%,2.276%{opacity:0}2.764%,28.943%{opacity:1}29.919%,100%{opacity:0}}
|
|
8
|
+
.l3{animation:l3 30.75s linear infinite}@keyframes l3{0%,4.553%{opacity:0}5.041%,28.943%{opacity:1}29.919%,100%{opacity:0}}
|
|
9
|
+
.l4{animation:l4 30.75s linear infinite}@keyframes l4{0%,5.691%{opacity:0}6.179%,28.943%{opacity:1}29.919%,100%{opacity:0}}
|
|
10
|
+
.l5{animation:l5 30.75s linear infinite}@keyframes l5{0%,6.829%{opacity:0}7.317%,28.943%{opacity:1}29.919%,100%{opacity:0}}
|
|
11
|
+
.l6{animation:l6 30.75s linear infinite}@keyframes l6{0%,7.967%{opacity:0}8.455%,28.943%{opacity:1}29.919%,100%{opacity:0}}
|
|
12
|
+
.l7{animation:l7 30.75s linear infinite}@keyframes l7{0%,9.106%{opacity:0}9.593%,28.943%{opacity:1}29.919%,100%{opacity:0}}
|
|
13
|
+
.l8{animation:l8 30.75s linear infinite}@keyframes l8{0%,10.244%{opacity:0}10.732%,28.943%{opacity:1}29.919%,100%{opacity:0}}
|
|
14
|
+
.l9{animation:l9 30.75s linear infinite}@keyframes l9{0%,11.382%{opacity:0}11.870%,28.943%{opacity:1}29.919%,100%{opacity:0}}
|
|
15
|
+
.l10{animation:l10 30.75s linear infinite}@keyframes l10{0%,29.919%{opacity:0}30.407%,62.276%{opacity:1}63.252%,100%{opacity:0}}
|
|
16
|
+
.l11{animation:l11 30.75s linear infinite}@keyframes l11{0%,31.057%{opacity:0}31.545%,62.276%{opacity:1}63.252%,100%{opacity:0}}
|
|
17
|
+
.l12{animation:l12 30.75s linear infinite}@keyframes l12{0%,32.195%{opacity:0}32.683%,62.276%{opacity:1}63.252%,100%{opacity:0}}
|
|
18
|
+
.l13{animation:l13 30.75s linear infinite}@keyframes l13{0%,34.472%{opacity:0}34.959%,62.276%{opacity:1}63.252%,100%{opacity:0}}
|
|
19
|
+
.l14{animation:l14 30.75s linear infinite}@keyframes l14{0%,35.610%{opacity:0}36.098%,62.276%{opacity:1}63.252%,100%{opacity:0}}
|
|
20
|
+
.l15{animation:l15 30.75s linear infinite}@keyframes l15{0%,36.748%{opacity:0}37.236%,62.276%{opacity:1}63.252%,100%{opacity:0}}
|
|
21
|
+
.l16{animation:l16 30.75s linear infinite}@keyframes l16{0%,37.886%{opacity:0}38.374%,62.276%{opacity:1}63.252%,100%{opacity:0}}
|
|
22
|
+
.l17{animation:l17 30.75s linear infinite}@keyframes l17{0%,39.024%{opacity:0}39.512%,62.276%{opacity:1}63.252%,100%{opacity:0}}
|
|
23
|
+
.l18{animation:l18 30.75s linear infinite}@keyframes l18{0%,40.163%{opacity:0}40.650%,62.276%{opacity:1}63.252%,100%{opacity:0}}
|
|
24
|
+
.l19{animation:l19 30.75s linear infinite}@keyframes l19{0%,41.301%{opacity:0}41.789%,62.276%{opacity:1}63.252%,100%{opacity:0}}
|
|
25
|
+
.l20{animation:l20 30.75s linear infinite}@keyframes l20{0%,42.439%{opacity:0}42.927%,62.276%{opacity:1}63.252%,100%{opacity:0}}
|
|
26
|
+
.l21{animation:l21 30.75s linear infinite}@keyframes l21{0%,43.577%{opacity:0}44.065%,62.276%{opacity:1}63.252%,100%{opacity:0}}
|
|
27
|
+
.l22{animation:l22 30.75s linear infinite}@keyframes l22{0%,45.854%{opacity:0}46.341%,62.276%{opacity:1}63.252%,100%{opacity:0}}
|
|
28
|
+
.l23{animation:l23 30.75s linear infinite}@keyframes l23{0%,63.252%{opacity:0}63.740%,99.024%{opacity:1}100.000%,100%{opacity:0}}
|
|
29
|
+
.l24{animation:l24 30.75s linear infinite}@keyframes l24{0%,64.390%{opacity:0}64.878%,99.024%{opacity:1}100.000%,100%{opacity:0}}
|
|
30
|
+
.l25{animation:l25 30.75s linear infinite}@keyframes l25{0%,65.528%{opacity:0}66.016%,99.024%{opacity:1}100.000%,100%{opacity:0}}
|
|
31
|
+
.l26{animation:l26 30.75s linear infinite}@keyframes l26{0%,67.805%{opacity:0}68.293%,99.024%{opacity:1}100.000%,100%{opacity:0}}
|
|
32
|
+
.l27{animation:l27 30.75s linear infinite}@keyframes l27{0%,70.081%{opacity:0}70.569%,99.024%{opacity:1}100.000%,100%{opacity:0}}
|
|
33
|
+
.l28{animation:l28 30.75s linear infinite}@keyframes l28{0%,71.220%{opacity:0}71.707%,99.024%{opacity:1}100.000%,100%{opacity:0}}
|
|
34
|
+
.l29{animation:l29 30.75s linear infinite}@keyframes l29{0%,73.496%{opacity:0}73.984%,99.024%{opacity:1}100.000%,100%{opacity:0}}
|
|
35
|
+
.l30{animation:l30 30.75s linear infinite}@keyframes l30{0%,74.634%{opacity:0}75.122%,99.024%{opacity:1}100.000%,100%{opacity:0}}
|
|
36
|
+
.l31{animation:l31 30.75s linear infinite}@keyframes l31{0%,75.772%{opacity:0}76.260%,99.024%{opacity:1}100.000%,100%{opacity:0}}
|
|
37
|
+
.l32{animation:l32 30.75s linear infinite}@keyframes l32{0%,78.049%{opacity:0}78.537%,99.024%{opacity:1}100.000%,100%{opacity:0}}
|
|
38
|
+
.l33{animation:l33 30.75s linear infinite}@keyframes l33{0%,79.187%{opacity:0}79.675%,99.024%{opacity:1}100.000%,100%{opacity:0}}
|
|
39
|
+
.l34{animation:l34 30.75s linear infinite}@keyframes l34{0%,81.463%{opacity:0}81.951%,99.024%{opacity:1}100.000%,100%{opacity:0}}
|
|
40
|
+
.l35{animation:l35 30.75s linear infinite}@keyframes l35{0%,82.602%{opacity:0}83.089%,99.024%{opacity:1}100.000%,100%{opacity:0}}
|
|
41
|
+
@media (prefers-reduced-motion:reduce){.a{animation:none}.s0{opacity:1}}
|
|
42
|
+
</style>
|
|
43
|
+
<rect width="100%" height="100%" rx="10" fill="#1e1e2e"/>
|
|
44
|
+
<rect width="100%" height="28" rx="10" fill="#181825"/><rect y="18" width="100%" height="10" fill="#181825"/>
|
|
45
|
+
<circle cx="18" cy="14" r="5" fill="#ff5f57"/><circle cx="36" cy="14" r="5" fill="#febc2e"/><circle cx="54" cy="14" r="5" fill="#28c840"/>
|
|
46
|
+
<text x="74" y="18" fill="#6c7086" font-size="12">sys1grep — real runs · full demo: uehaj.github.io/sys1grep</text>
|
|
47
|
+
<text class="a l0 s0" x="18" y="44" xml:space="preserve"><tspan fill="#ffffff" font-weight="700" font-family="system-ui,sans-serif" font-size="15">Ask in one language, find every language</tspan></text>
|
|
48
|
+
<text class="a l1 s0" x="18" y="64" xml:space="preserve"><tspan fill="#6c7086">One Japanese meaning, “the customer is asking for a refund”, finds refund requests in French, Russian, German,</tspan></text>
|
|
49
|
+
<text class="a l2 s0" x="18" y="84" xml:space="preserve"><tspan fill="#6c7086">Spanish, Chinese and Korean — and skips the thank-you notes.</tspan></text>
|
|
50
|
+
<text class="a l3 s0" x="18" y="124" xml:space="preserve"><tspan fill="#6c7086">$ </tspan><tspan fill="#cdd6f4">sys1grep -n -p -e "顧客が返金を求めている" tests/multi.txt</tspan></text>
|
|
51
|
+
<text class="a l4 s0" x="18" y="144" xml:space="preserve"><tspan fill="#8ce99a">1</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#cdd6f4">Je veux être remboursé, le produit est arrivé cassé.</tspan><tspan fill="#8ce99a"> [0.98]</tspan></text>
|
|
52
|
+
<text class="a l5 s0" x="18" y="164" xml:space="preserve"><tspan fill="#8ce99a">3</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#cdd6f4">Я требую вернуть деньги, товар не работает.</tspan><tspan fill="#8ce99a"> [0.97]</tspan></text>
|
|
53
|
+
<text class="a l6 s0" x="18" y="184" xml:space="preserve"><tspan fill="#8ce99a">5</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#cdd6f4">Ich möchte mein Geld zurück, das Gerät ist defekt.</tspan><tspan fill="#8ce99a"> [0.97]</tspan></text>
|
|
54
|
+
<text class="a l7 s0" x="18" y="204" xml:space="preserve"><tspan fill="#8ce99a">7</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#cdd6f4">Quiero un reembolso, el paquete llegó vacío.</tspan><tspan fill="#8ce99a"> [0.97]</tspan></text>
|
|
55
|
+
<text class="a l8 s0" x="18" y="224" xml:space="preserve"><tspan fill="#8ce99a">9</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#cdd6f4">我要求退款,商品坏了。</tspan><tspan fill="#8ce99a"> [0.97]</tspan></text>
|
|
56
|
+
<text class="a l9 s0" x="18" y="244" xml:space="preserve"><tspan fill="#8ce99a">11</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#cdd6f4">환불해 주세요. 제품이 고장났어요.</tspan><tspan fill="#8ce99a"> [0.97]</tspan></text>
|
|
57
|
+
<text class="a l10" x="18" y="44" xml:space="preserve"><tspan fill="#ffffff" font-weight="700" font-family="system-ui,sans-serif" font-size="15">Propositions, not topics</tspan></text>
|
|
58
|
+
<text class="a l11" x="18" y="64" xml:space="preserve"><tspan fill="#6c7086">Six of these lines are “about a refund”. Only two are a customer asking for one. Vector search sees six</tspan></text>
|
|
59
|
+
<text class="a l12" x="18" y="84" xml:space="preserve"><tspan fill="#6c7086">neighbours; Jev sees two true statements.</tspan></text>
|
|
60
|
+
<text class="a l13" x="18" y="124" xml:space="preserve"><tspan fill="#6c7086">$ </tspan><tspan fill="#cdd6f4">sys1grep -n -p -t 0 -e "customer is asking for a refund" tests/contrast.en.txt</tspan></text>
|
|
61
|
+
<text class="a l14" x="18" y="144" xml:space="preserve"><tspan fill="#8ce99a">1</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#cdd6f4">I want a refund. The item was broken.</tspan><tspan fill="#8ce99a"> [0.99]</tspan></text>
|
|
62
|
+
<text class="a l15" x="18" y="164" xml:space="preserve"><tspan fill="#8ce99a">2</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#cdd6f4">The refund has been processed. Please check your account.</tspan><tspan fill="#ff6b6b"> [0.11]</tspan></text>
|
|
63
|
+
<text class="a l16" x="18" y="184" xml:space="preserve"><tspan fill="#8ce99a">3</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#cdd6f4">Our refund policy is within 30 days of purchase.</tspan><tspan fill="#ff6b6b"> [0.09]</tspan></text>
|
|
64
|
+
<text class="a l17" x="18" y="204" xml:space="preserve"><tspan fill="#8ce99a">4</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#cdd6f4">The manager denied the refund request yesterday</tspan><tspan fill="#ff6b6b"> [0.17]</tspan></text>
|
|
65
|
+
<text class="a l18" x="18" y="224" xml:space="preserve"><tspan fill="#8ce99a">5</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#cdd6f4">I demand a full refund immediately</tspan><tspan fill="#8ce99a"> [0.93]</tspan></text>
|
|
66
|
+
<text class="a l19" x="18" y="244" xml:space="preserve"><tspan fill="#8ce99a">6</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#cdd6f4">Refunds are processed within 5 business days</tspan><tspan fill="#ff6b6b"> [0.07]</tspan></text>
|
|
67
|
+
<text class="a l20" x="18" y="264" xml:space="preserve"><tspan fill="#8ce99a">7</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#cdd6f4">The support agent got angry and hung up the phone.</tspan><tspan fill="#ff6b6b"> [0.05]</tspan></text>
|
|
68
|
+
<text class="a l21" x="18" y="284" xml:space="preserve"><tspan fill="#8ce99a">8</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#cdd6f4">The customer got angry and hung up the phone.</tspan><tspan fill="#ff6b6b"> [0.06]</tspan></text>
|
|
69
|
+
<text class="a l22" x="18" y="324" xml:space="preserve"><tspan fill="#6c7086">Threshold 0.5 — calibrated probabilities, no per-query tuning.</tspan></text>
|
|
70
|
+
<text class="a l23" x="18" y="44" xml:space="preserve"><tspan fill="#ffffff" font-weight="700" font-family="system-ui,sans-serif" font-size="15">-Q finds the answer</tspan></text>
|
|
71
|
+
<text class="a l24" x="18" y="64" xml:space="preserve"><tspan fill="#6c7086">Ask the question as you would ask it. -e X finds lines that say X; -Q X finds lines that answer X. “The job</tspan></text>
|
|
72
|
+
<text class="a l25" x="18" y="84" xml:space="preserve"><tspan fill="#6c7086">failed.” does not say the job succeeded, but it answers whether it did: no.</tspan></text>
|
|
73
|
+
<text class="a l26" x="18" y="124" xml:space="preserve"><tspan fill="#6c7086">$ </tspan><tspan fill="#cdd6f4">echo "The job failed." | sys1grep -n -e "Did the job succeed?"</tspan></text>
|
|
74
|
+
<text class="a l27" x="18" y="164" xml:space="preserve"><tspan fill="#6c7086">$ </tspan><tspan fill="#cdd6f4">echo "The job failed." | sys1grep -n -Q "Did the job succeed?"</tspan></text>
|
|
75
|
+
<text class="a l28" x="18" y="184" xml:space="preserve"><tspan fill="#8ce99a">1</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#cdd6f4">The job failed.</tspan></text>
|
|
76
|
+
<text class="a l29" x="18" y="224" xml:space="preserve"><tspan fill="#6c7086">$ </tspan><tspan fill="#cdd6f4">sys1grep -n -e "how to get a refund" tests/intent.txt</tspan></text>
|
|
77
|
+
<text class="a l30" x="18" y="244" xml:space="preserve"><tspan fill="#8ce99a">12</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#cdd6f4">Email support with your order number to receive a refund.</tspan></text>
|
|
78
|
+
<text class="a l31" x="18" y="264" xml:space="preserve"><tspan fill="#8ce99a">13</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#cdd6f4">How do I get a refund?</tspan></text>
|
|
79
|
+
<text class="a l32" x="18" y="304" xml:space="preserve"><tspan fill="#6c7086">$ </tspan><tspan fill="#cdd6f4">sys1grep -n -Q "how to get a refund" tests/intent.txt</tspan></text>
|
|
80
|
+
<text class="a l33" x="18" y="324" xml:space="preserve"><tspan fill="#8ce99a">12</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#cdd6f4">Email support with your order number to receive a refund.</tspan></text>
|
|
81
|
+
<text class="a l34" x="18" y="364" xml:space="preserve"><tspan fill="#6c7086">A “no” answers a yes/no question too; a line that asks it (13) answers nothing. -Q X is shorthand for -e "the</tspan></text>
|
|
82
|
+
<text class="a l35" x="18" y="384" xml:space="preserve"><tspan fill="#6c7086">line answers: X".</tspan></text>
|
|
83
|
+
</svg>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="808" height="240" font-family="SFMono-Regular,Menlo,Consolas,monospace" font-size="13">
|
|
2
|
+
<rect width="100%" height="100%" rx="6" fill="#1e1e2e"/>
|
|
3
|
+
<text x="16" y="29" xml:space="preserve"><tspan fill="#cdd6f4">$ sys1grep -n --sentence -C 3 --color \</tspan></text>
|
|
4
|
+
<text x="16" y="49" xml:space="preserve"><tspan fill="#cdd6f4"> -e "the author admits they made a mistake" -e "customer is asking for a refund" tests/prose.txt</tspan></text>
|
|
5
|
+
<text x="16" y="69" xml:space="preserve"><tspan fill="#8ce99a">1</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#ffd43b" font-weight="700">I should have checked the input</tspan></text>
|
|
6
|
+
<text x="16" y="89" xml:space="preserve"><tspan fill="#8ce99a">2</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#ffd43b" font-weight="700">before shipping, and that was my</tspan></text>
|
|
7
|
+
<text x="16" y="109" xml:space="preserve"><tspan fill="#8ce99a">3</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#ffd43b" font-weight="700">mistake.</tspan><tspan fill="#cdd6f4"> Next time I will add a test</tspan></text>
|
|
8
|
+
<text x="16" y="129" xml:space="preserve"><tspan fill="#8ce99a">4</tspan><tspan fill="#66d9e8">-</tspan><tspan fill="#cdd6f4">first.</tspan></text>
|
|
9
|
+
<text x="16" y="149" xml:space="preserve"><tspan fill="#8ce99a">5</tspan><tspan fill="#66d9e8">-</tspan></text>
|
|
10
|
+
<text x="16" y="169" xml:space="preserve"><tspan fill="#8ce99a">6</tspan><tspan fill="#66d9e8">-</tspan><tspan fill="#cdd6f4">The weather was lovely all week, and</tspan></text>
|
|
11
|
+
<text x="16" y="189" xml:space="preserve"><tspan fill="#8ce99a">7</tspan><tspan fill="#66d9e8">-</tspan><tspan fill="#cdd6f4">we walked to the lake every morning.</tspan></text>
|
|
12
|
+
<text x="16" y="209" xml:space="preserve"><tspan fill="#8ce99a">8</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#ffd43b" font-weight="700">先週買った掃除機が初日から動かないので</tspan></text>
|
|
13
|
+
<text x="16" y="229" xml:space="preserve"><tspan fill="#8ce99a">9</tspan><tspan fill="#66d9e8">:</tspan><tspan fill="#ffd43b" font-weight="700">返金してほしいです。</tspan><tspan fill="#cdd6f4">よろしくお願いします。</tspan></text>
|
|
14
|
+
</svg>
|
package/git-sys1grep.mjs
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@uehaj/sys1grep",
|
|
3
|
+
"version": "0.5.0-next.0",
|
|
4
|
+
"description": "grep by meaning, across languages. TypeSafe Jev scores every line against a meaning; combine meanings with AND/OR/NOT.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"grep",
|
|
7
|
+
"semantic",
|
|
8
|
+
"search",
|
|
9
|
+
"typesafe",
|
|
10
|
+
"jev",
|
|
11
|
+
"cli",
|
|
12
|
+
"japanese"
|
|
13
|
+
],
|
|
14
|
+
"license": "MIT",
|
|
15
|
+
"author": "Junji UEHARA",
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "git+https://github.com/uehaj/sys1grep.git"
|
|
19
|
+
},
|
|
20
|
+
"type": "module",
|
|
21
|
+
"bin": {
|
|
22
|
+
"sys1grep": "sys1grep.mjs",
|
|
23
|
+
"git-sys1grep": "git-sys1grep.mjs"
|
|
24
|
+
},
|
|
25
|
+
"files": [
|
|
26
|
+
"sys1grep.mjs",
|
|
27
|
+
"git-sys1grep.mjs",
|
|
28
|
+
"README.md",
|
|
29
|
+
"README.ja.md",
|
|
30
|
+
"docs/color.svg",
|
|
31
|
+
"docs/demo.svg",
|
|
32
|
+
"docs/sentence.svg"
|
|
33
|
+
],
|
|
34
|
+
"engines": {
|
|
35
|
+
"node": ">=20.16"
|
|
36
|
+
},
|
|
37
|
+
"scripts": {
|
|
38
|
+
"test": "sh tests/offline.sh && sh tests/check.sh",
|
|
39
|
+
"test:offline": "sh tests/offline.sh",
|
|
40
|
+
"judge": "node --no-warnings --env-file-if-exists=.env tests/judge.mts",
|
|
41
|
+
"scope-eval": "node tests/scope-eval.mjs",
|
|
42
|
+
"release": "sh scripts/release.sh"
|
|
43
|
+
}
|
|
44
|
+
}
|