๐Ÿ“ฆ RightNow-AI / openfang

๐Ÿ“„ feature-coverage.svg ยท 116 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 480" font-family="-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif">
  <defs>
    <linearGradient id="of" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#10b981"/>
      <stop offset="100%" stop-color="#059669"/>
    </linearGradient>
    <linearGradient id="oc" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#6366f1"/>
      <stop offset="100%" stop-color="#4f46e5"/>
    </linearGradient>
    <linearGradient id="lc" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#f59e0b"/>
      <stop offset="100%" stop-color="#d97706"/>
    </linearGradient>
  </defs>

  <!-- Background -->
  <rect width="800" height="480" rx="12" fill="#0f172a"/>

  <!-- Title -->
  <text x="400" y="36" text-anchor="middle" fill="#f1f5f9" font-size="16" font-weight="700">Feature Coverage Comparison</text>
  <text x="400" y="54" text-anchor="middle" fill="#94a3b8" font-size="11">Counted from public documentation and source code analysis</text>

  <!-- Legend -->
  <rect x="220" y="68" width="12" height="12" rx="2" fill="url(#of)"/>
  <text x="237" y="79" fill="#e2e8f0" font-size="11" font-weight="600">OpenFang</text>
  <rect x="320" y="68" width="12" height="12" rx="2" fill="url(#oc)"/>
  <text x="337" y="79" fill="#e2e8f0" font-size="11">OpenClaw</text>
  <rect x="420" y="68" width="12" height="12" rx="2" fill="url(#lc)"/>
  <text x="437" y="79" fill="#e2e8f0" font-size="11">LangChain</text>

  <!-- Grid lines -->
  <line x1="100" y1="105" x2="760" y2="105" stroke="#1e293b" stroke-width="1"/>
  <line x1="100" y1="400" x2="760" y2="400" stroke="#334155" stroke-width="1"/>

  <!-- Category labels (bottom) -->
  <text x="165" y="425" text-anchor="middle" fill="#94a3b8" font-size="10">Channels</text>
  <text x="275" y="425" text-anchor="middle" fill="#94a3b8" font-size="10">Skills</text>
  <text x="385" y="425" text-anchor="middle" fill="#94a3b8" font-size="10">Tools</text>
  <text x="495" y="425" text-anchor="middle" fill="#94a3b8" font-size="10">Providers</text>
  <text x="605" y="425" text-anchor="middle" fill="#94a3b8" font-size="10">API Endpoints</text>
  <text x="715" y="425" text-anchor="middle" fill="#94a3b8" font-size="10">Tests</text>

  <!-- Scale markers -->
  <text x="95" y="403" text-anchor="end" fill="#475569" font-size="9">0</text>
  <text x="95" y="109" text-anchor="end" fill="#475569" font-size="9">max</text>

  <!-- === Channels (max ~40) === -->
  <!-- OpenFang: 40 -->
  <rect x="130" y="112" width="24" height="284" rx="3" fill="url(#of)" opacity="0.95"/>
  <text x="142" y="107" text-anchor="middle" fill="#10b981" font-size="11" font-weight="700">40</text>
  <!-- OpenClaw: 38 -->
  <rect x="158" y="126" width="24" height="270" rx="3" fill="url(#oc)" opacity="0.85"/>
  <text x="170" y="121" text-anchor="middle" fill="#818cf8" font-size="10">38</text>
  <!-- LangChain: 0 -->
  <rect x="186" y="396" width="24" height="0" rx="3" fill="url(#lc)"/>
  <text x="198" y="393" text-anchor="middle" fill="#fbbf24" font-size="10">0</text>

  <!-- === Skills (max ~60) === -->
  <!-- OpenFang: 60 -->
  <rect x="240" y="112" width="24" height="284" rx="3" fill="url(#of)" opacity="0.95"/>
  <text x="252" y="107" text-anchor="middle" fill="#10b981" font-size="11" font-weight="700">60</text>
  <!-- OpenClaw: 57 -->
  <rect x="268" y="126" width="24" height="270" rx="3" fill="url(#oc)" opacity="0.85"/>
  <text x="280" y="121" text-anchor="middle" fill="#818cf8" font-size="10">57</text>
  <!-- LangChain: 0 -->
  <rect x="296" y="396" width="24" height="0" rx="3" fill="url(#lc)"/>
  <text x="308" y="393" text-anchor="middle" fill="#fbbf24" font-size="10">0</text>

  <!-- === Tools (max ~53) === -->
  <!-- OpenFang: 53 -->
  <rect x="350" y="112" width="24" height="284" rx="3" fill="url(#of)" opacity="0.95"/>
  <text x="362" y="107" text-anchor="middle" fill="#10b981" font-size="11" font-weight="700">53</text>
  <!-- OpenClaw: 15 -->
  <rect x="378" y="318" width="24" height="78" rx="3" fill="url(#oc)" opacity="0.85"/>
  <text x="390" y="313" text-anchor="middle" fill="#818cf8" font-size="10">15</text>
  <!-- LangChain: varies -->
  <rect x="406" y="352" width="24" height="44" rx="3" fill="url(#lc)" opacity="0.85"/>
  <text x="418" y="347" text-anchor="middle" fill="#fbbf24" font-size="10">~8</text>

  <!-- === Providers (max ~27) === -->
  <!-- OpenFang: 27 -->
  <rect x="460" y="112" width="24" height="284" rx="3" fill="url(#of)" opacity="0.95"/>
  <text x="472" y="107" text-anchor="middle" fill="#10b981" font-size="11" font-weight="700">27</text>
  <!-- OpenClaw: 3 -->
  <rect x="488" y="365" width="24" height="31" rx="3" fill="url(#oc)" opacity="0.85"/>
  <text x="500" y="360" text-anchor="middle" fill="#818cf8" font-size="10">3</text>
  <!-- LangChain: many -->
  <rect x="516" y="195" width="24" height="201" rx="3" fill="url(#lc)" opacity="0.85"/>
  <text x="528" y="190" text-anchor="middle" fill="#fbbf24" font-size="10">~20</text>

  <!-- === API Endpoints (max ~140) === -->
  <!-- OpenFang: 140 -->
  <rect x="570" y="112" width="24" height="284" rx="3" fill="url(#of)" opacity="0.95"/>
  <text x="582" y="107" text-anchor="middle" fill="#10b981" font-size="11" font-weight="700">140</text>
  <!-- OpenClaw: ~30 -->
  <rect x="598" y="339" width="24" height="57" rx="3" fill="url(#oc)" opacity="0.85"/>
  <text x="610" y="334" text-anchor="middle" fill="#818cf8" font-size="10">~30</text>
  <!-- LangChain: N/A -->
  <rect x="626" y="396" width="24" height="0" rx="3" fill="url(#lc)"/>
  <text x="638" y="393" text-anchor="middle" fill="#fbbf24" font-size="10">N/A</text>

  <!-- === Tests (max ~1759) === -->
  <!-- OpenFang: 1759 -->
  <rect x="680" y="112" width="24" height="284" rx="3" fill="url(#of)" opacity="0.95"/>
  <text x="692" y="107" text-anchor="middle" fill="#10b981" font-size="10" font-weight="700">1759</text>
  <!-- OpenClaw: unknown -->
  <rect x="708" y="370" width="24" height="26" rx="3" fill="url(#oc)" opacity="0.5"/>
  <text x="720" y="365" text-anchor="middle" fill="#818cf8" font-size="10">?</text>
  <!-- LangChain: unknown -->
  <rect x="736" y="370" width="24" height="26" rx="3" fill="url(#lc)" opacity="0.5"/>
  <text x="748" y="365" text-anchor="middle" fill="#fbbf24" font-size="10">?</text>

  <!-- Bottom note -->
  <text x="400" y="460" text-anchor="middle" fill="#64748b" font-size="10">All counts verified from source code. OpenClaw and LangChain counts from public documentation.</text>
</svg>