llms-py 3.0.7__py3-none-any.whl → 3.0.8__py3-none-any.whl
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.
- llms/extensions/app/ui/Recents.mjs +1 -1
- llms/extensions/app/ui/threadStore.mjs +4 -3
- llms/extensions/core_tools/__init__.py +14 -12
- llms/extensions/providers/google.py +3 -3
- llms/extensions/tools/__init__.py +140 -1
- llms/extensions/tools/ui/index.mjs +552 -50
- llms/main.py +445 -97
- llms/ui/App.mjs +1 -1
- llms/ui/ai.mjs +1 -1
- llms/ui/app.css +200 -16
- llms/ui/ctx.mjs +16 -3
- llms/ui/index.mjs +1 -1
- llms/ui/modules/chat/ChatBody.mjs +382 -105
- llms/ui/modules/chat/index.mjs +16 -2
- llms/ui/tailwind.input.css +54 -0
- llms/ui/utils.mjs +29 -0
- {llms_py-3.0.7.dist-info → llms_py-3.0.8.dist-info}/METADATA +1 -1
- {llms_py-3.0.7.dist-info → llms_py-3.0.8.dist-info}/RECORD +22 -22
- {llms_py-3.0.7.dist-info → llms_py-3.0.8.dist-info}/WHEEL +0 -0
- {llms_py-3.0.7.dist-info → llms_py-3.0.8.dist-info}/entry_points.txt +0 -0
- {llms_py-3.0.7.dist-info → llms_py-3.0.8.dist-info}/licenses/LICENSE +0 -0
- {llms_py-3.0.7.dist-info → llms_py-3.0.8.dist-info}/top_level.txt +0 -0
llms/ui/App.mjs
CHANGED
|
@@ -31,7 +31,7 @@ const LeftBar = {
|
|
|
31
31
|
const LeftPanel = {
|
|
32
32
|
template: `
|
|
33
33
|
<div v-if="component" class="flex flex-col h-full border-r border-gray-200 dark:border-gray-700">
|
|
34
|
-
<button type="button" class="absolute top-2 right-2 p-1 rounded-md text-gray-500 hover:bg-gray-100 dark:hover:bg-gray-700 lg:hidden z-20">
|
|
34
|
+
<button type="button" @click="$ctx.toggleLayout('left',false)" class="absolute top-2 right-2 p-1 rounded-md text-gray-500 hover:bg-gray-100 dark:hover:bg-gray-700 lg:hidden z-20">
|
|
35
35
|
<svg class="size-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
|
|
36
36
|
</button>
|
|
37
37
|
<component :is="component" />
|
llms/ui/ai.mjs
CHANGED
llms/ui/app.css
CHANGED
|
@@ -20,8 +20,10 @@
|
|
|
20
20
|
--color-red-900: oklch(39.6% 0.141 25.723);
|
|
21
21
|
--color-orange-100: oklch(95.4% 0.038 75.164);
|
|
22
22
|
--color-orange-200: oklch(90.1% 0.076 70.697);
|
|
23
|
+
--color-orange-300: oklch(83.7% 0.128 66.29);
|
|
23
24
|
--color-orange-400: oklch(75% 0.183 55.934);
|
|
24
25
|
--color-orange-600: oklch(64.6% 0.222 41.116);
|
|
26
|
+
--color-orange-700: oklch(55.3% 0.195 38.402);
|
|
25
27
|
--color-orange-800: oklch(47% 0.157 37.304);
|
|
26
28
|
--color-orange-900: oklch(40.8% 0.123 38.172);
|
|
27
29
|
--color-yellow-50: oklch(98.7% 0.026 102.212);
|
|
@@ -91,6 +93,7 @@
|
|
|
91
93
|
--color-purple-700: oklch(49.6% 0.265 301.924);
|
|
92
94
|
--color-purple-800: oklch(43.8% 0.218 303.724);
|
|
93
95
|
--color-purple-900: oklch(38.1% 0.176 304.987);
|
|
96
|
+
--color-fuchsia-50: oklch(97.7% 0.017 320.058);
|
|
94
97
|
--color-fuchsia-100: oklch(95.2% 0.037 318.852);
|
|
95
98
|
--color-fuchsia-200: oklch(90.3% 0.076 319.62);
|
|
96
99
|
--color-fuchsia-300: oklch(83.3% 0.145 321.434);
|
|
@@ -484,12 +487,6 @@
|
|
|
484
487
|
.z-100 {
|
|
485
488
|
z-index: 100;
|
|
486
489
|
}
|
|
487
|
-
.z-\[100\] {
|
|
488
|
-
z-index: 100;
|
|
489
|
-
}
|
|
490
|
-
.z-\[101\] {
|
|
491
|
-
z-index: 101;
|
|
492
|
-
}
|
|
493
490
|
.col-span-2 {
|
|
494
491
|
grid-column: span 2 / span 2;
|
|
495
492
|
}
|
|
@@ -806,6 +803,9 @@
|
|
|
806
803
|
.h-\[37px\] {
|
|
807
804
|
height: 37px;
|
|
808
805
|
}
|
|
806
|
+
.h-auto {
|
|
807
|
+
height: auto;
|
|
808
|
+
}
|
|
809
809
|
.h-full {
|
|
810
810
|
height: 100%;
|
|
811
811
|
}
|
|
@@ -827,9 +827,15 @@
|
|
|
827
827
|
.max-h-96 {
|
|
828
828
|
max-height: calc(var(--spacing) * 96);
|
|
829
829
|
}
|
|
830
|
+
.max-h-\[80vh\] {
|
|
831
|
+
max-height: 80vh;
|
|
832
|
+
}
|
|
830
833
|
.max-h-\[90vh\] {
|
|
831
834
|
max-height: 90vh;
|
|
832
835
|
}
|
|
836
|
+
.max-h-\[200px\] {
|
|
837
|
+
max-height: 200px;
|
|
838
|
+
}
|
|
833
839
|
.max-h-\[calc\(90vh-140px\)\] {
|
|
834
840
|
max-height: calc(90vh - 140px);
|
|
835
841
|
}
|
|
@@ -902,6 +908,9 @@
|
|
|
902
908
|
.w-80 {
|
|
903
909
|
width: calc(var(--spacing) * 80);
|
|
904
910
|
}
|
|
911
|
+
.w-auto {
|
|
912
|
+
width: auto;
|
|
913
|
+
}
|
|
905
914
|
.w-full {
|
|
906
915
|
width: 100%;
|
|
907
916
|
}
|
|
@@ -941,6 +950,9 @@
|
|
|
941
950
|
.max-w-\[140px\] {
|
|
942
951
|
max-width: 140px;
|
|
943
952
|
}
|
|
953
|
+
.max-w-\[200px\] {
|
|
954
|
+
max-width: 200px;
|
|
955
|
+
}
|
|
944
956
|
.max-w-\[400px\] {
|
|
945
957
|
max-width: 400px;
|
|
946
958
|
}
|
|
@@ -1087,6 +1099,9 @@
|
|
|
1087
1099
|
.-rotate-12 {
|
|
1088
1100
|
rotate: calc(12deg * -1);
|
|
1089
1101
|
}
|
|
1102
|
+
.-rotate-90 {
|
|
1103
|
+
rotate: calc(90deg * -1);
|
|
1104
|
+
}
|
|
1090
1105
|
.rotate-12 {
|
|
1091
1106
|
rotate: 12deg;
|
|
1092
1107
|
}
|
|
@@ -1123,6 +1138,9 @@
|
|
|
1123
1138
|
.cursor-text {
|
|
1124
1139
|
cursor: text;
|
|
1125
1140
|
}
|
|
1141
|
+
.cursor-zoom-in {
|
|
1142
|
+
cursor: zoom-in;
|
|
1143
|
+
}
|
|
1126
1144
|
.resize {
|
|
1127
1145
|
resize: both;
|
|
1128
1146
|
}
|
|
@@ -1445,6 +1463,9 @@
|
|
|
1445
1463
|
--tw-border-style: none;
|
|
1446
1464
|
border-style: none;
|
|
1447
1465
|
}
|
|
1466
|
+
.border-blue-100 {
|
|
1467
|
+
border-color: var(--color-blue-100);
|
|
1468
|
+
}
|
|
1448
1469
|
.border-blue-200 {
|
|
1449
1470
|
border-color: var(--color-blue-200);
|
|
1450
1471
|
}
|
|
@@ -1484,6 +1505,9 @@
|
|
|
1484
1505
|
.border-green-200 {
|
|
1485
1506
|
border-color: var(--color-green-200);
|
|
1486
1507
|
}
|
|
1508
|
+
.border-green-300 {
|
|
1509
|
+
border-color: var(--color-green-300);
|
|
1510
|
+
}
|
|
1487
1511
|
.border-green-400 {
|
|
1488
1512
|
border-color: var(--color-green-400);
|
|
1489
1513
|
}
|
|
@@ -1604,6 +1628,9 @@
|
|
|
1604
1628
|
.bg-cyan-600 {
|
|
1605
1629
|
background-color: var(--color-cyan-600);
|
|
1606
1630
|
}
|
|
1631
|
+
.bg-fuchsia-50 {
|
|
1632
|
+
background-color: var(--color-fuchsia-50);
|
|
1633
|
+
}
|
|
1607
1634
|
.bg-fuchsia-100 {
|
|
1608
1635
|
background-color: var(--color-fuchsia-100);
|
|
1609
1636
|
}
|
|
@@ -1622,6 +1649,12 @@
|
|
|
1622
1649
|
background-color: color-mix(in oklab, var(--color-gray-50) 30%, transparent);
|
|
1623
1650
|
}
|
|
1624
1651
|
}
|
|
1652
|
+
.bg-gray-50\/50 {
|
|
1653
|
+
background-color: color-mix(in srgb, oklch(98.5% 0.002 247.839) 50%, transparent);
|
|
1654
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1655
|
+
background-color: color-mix(in oklab, var(--color-gray-50) 50%, transparent);
|
|
1656
|
+
}
|
|
1657
|
+
}
|
|
1625
1658
|
.bg-gray-100 {
|
|
1626
1659
|
background-color: var(--color-gray-100);
|
|
1627
1660
|
}
|
|
@@ -1811,6 +1844,10 @@
|
|
|
1811
1844
|
--tw-gradient-from: transparent;
|
|
1812
1845
|
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
|
|
1813
1846
|
}
|
|
1847
|
+
.from-white {
|
|
1848
|
+
--tw-gradient-from: var(--color-white);
|
|
1849
|
+
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
|
|
1850
|
+
}
|
|
1814
1851
|
.from-yellow-200 {
|
|
1815
1852
|
--tw-gradient-from: var(--color-yellow-200);
|
|
1816
1853
|
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
|
|
@@ -2093,6 +2130,12 @@
|
|
|
2093
2130
|
.pl-5 {
|
|
2094
2131
|
padding-left: calc(var(--spacing) * 5);
|
|
2095
2132
|
}
|
|
2133
|
+
.pl-6 {
|
|
2134
|
+
padding-left: calc(var(--spacing) * 6);
|
|
2135
|
+
}
|
|
2136
|
+
.pl-7 {
|
|
2137
|
+
padding-left: calc(var(--spacing) * 7);
|
|
2138
|
+
}
|
|
2096
2139
|
.pl-9 {
|
|
2097
2140
|
padding-left: calc(var(--spacing) * 9);
|
|
2098
2141
|
}
|
|
@@ -2291,6 +2334,9 @@
|
|
|
2291
2334
|
.text-cyan-600 {
|
|
2292
2335
|
color: var(--color-cyan-600);
|
|
2293
2336
|
}
|
|
2337
|
+
.text-fuchsia-700 {
|
|
2338
|
+
color: var(--color-fuchsia-700);
|
|
2339
|
+
}
|
|
2294
2340
|
.text-fuchsia-800 {
|
|
2295
2341
|
color: var(--color-fuchsia-800);
|
|
2296
2342
|
}
|
|
@@ -2351,6 +2397,12 @@
|
|
|
2351
2397
|
.text-indigo-700 {
|
|
2352
2398
|
color: var(--color-indigo-700);
|
|
2353
2399
|
}
|
|
2400
|
+
.text-orange-600 {
|
|
2401
|
+
color: var(--color-orange-600);
|
|
2402
|
+
}
|
|
2403
|
+
.text-orange-700 {
|
|
2404
|
+
color: var(--color-orange-700);
|
|
2405
|
+
}
|
|
2354
2406
|
.text-orange-800 {
|
|
2355
2407
|
color: var(--color-orange-800);
|
|
2356
2408
|
}
|
|
@@ -2399,12 +2451,6 @@
|
|
|
2399
2451
|
.text-white {
|
|
2400
2452
|
color: var(--color-white);
|
|
2401
2453
|
}
|
|
2402
|
-
.text-white\/70 {
|
|
2403
|
-
color: color-mix(in srgb, #fff 70%, transparent);
|
|
2404
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
2405
|
-
color: color-mix(in oklab, var(--color-white) 70%, transparent);
|
|
2406
|
-
}
|
|
2407
|
-
}
|
|
2408
2454
|
.text-yellow-100 {
|
|
2409
2455
|
color: var(--color-yellow-100);
|
|
2410
2456
|
}
|
|
@@ -2868,6 +2914,13 @@
|
|
|
2868
2914
|
}
|
|
2869
2915
|
}
|
|
2870
2916
|
}
|
|
2917
|
+
.group-hover\:text-gray-900 {
|
|
2918
|
+
&:is(:where(.group):hover *) {
|
|
2919
|
+
@media (hover: hover) {
|
|
2920
|
+
color: var(--color-gray-900);
|
|
2921
|
+
}
|
|
2922
|
+
}
|
|
2923
|
+
}
|
|
2871
2924
|
.group-hover\:opacity-75 {
|
|
2872
2925
|
&:is(:where(.group):hover *) {
|
|
2873
2926
|
@media (hover: hover) {
|
|
@@ -3222,6 +3275,13 @@
|
|
|
3222
3275
|
}
|
|
3223
3276
|
}
|
|
3224
3277
|
}
|
|
3278
|
+
.hover\:bg-fuchsia-100 {
|
|
3279
|
+
&:hover {
|
|
3280
|
+
@media (hover: hover) {
|
|
3281
|
+
background-color: var(--color-fuchsia-100);
|
|
3282
|
+
}
|
|
3283
|
+
}
|
|
3284
|
+
}
|
|
3225
3285
|
.hover\:bg-fuchsia-600 {
|
|
3226
3286
|
&:hover {
|
|
3227
3287
|
@media (hover: hover) {
|
|
@@ -3558,17 +3618,17 @@
|
|
|
3558
3618
|
}
|
|
3559
3619
|
}
|
|
3560
3620
|
}
|
|
3561
|
-
.hover\:
|
|
3621
|
+
.hover\:underline {
|
|
3562
3622
|
&:hover {
|
|
3563
3623
|
@media (hover: hover) {
|
|
3564
|
-
|
|
3624
|
+
text-decoration-line: underline;
|
|
3565
3625
|
}
|
|
3566
3626
|
}
|
|
3567
3627
|
}
|
|
3568
|
-
.hover\:
|
|
3628
|
+
.hover\:opacity-90 {
|
|
3569
3629
|
&:hover {
|
|
3570
3630
|
@media (hover: hover) {
|
|
3571
|
-
|
|
3631
|
+
opacity: 90%;
|
|
3572
3632
|
}
|
|
3573
3633
|
}
|
|
3574
3634
|
}
|
|
@@ -4253,6 +4313,11 @@
|
|
|
4253
4313
|
flex-direction: row;
|
|
4254
4314
|
}
|
|
4255
4315
|
}
|
|
4316
|
+
.md\:items-center {
|
|
4317
|
+
@media (width >= 48rem) {
|
|
4318
|
+
align-items: center;
|
|
4319
|
+
}
|
|
4320
|
+
}
|
|
4256
4321
|
.md\:gap-10 {
|
|
4257
4322
|
@media (width >= 48rem) {
|
|
4258
4323
|
gap: calc(var(--spacing) * 10);
|
|
@@ -4730,6 +4795,14 @@
|
|
|
4730
4795
|
background-color: var(--color-cyan-600);
|
|
4731
4796
|
}
|
|
4732
4797
|
}
|
|
4798
|
+
.dark\:bg-fuchsia-900\/20 {
|
|
4799
|
+
&:where(.dark, .dark *) {
|
|
4800
|
+
background-color: color-mix(in srgb, oklch(40.1% 0.17 325.612) 20%, transparent);
|
|
4801
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
4802
|
+
background-color: color-mix(in oklab, var(--color-fuchsia-900) 20%, transparent);
|
|
4803
|
+
}
|
|
4804
|
+
}
|
|
4805
|
+
}
|
|
4733
4806
|
.dark\:bg-fuchsia-900\/40 {
|
|
4734
4807
|
&:where(.dark, .dark *) {
|
|
4735
4808
|
background-color: color-mix(in srgb, oklch(40.1% 0.17 325.612) 40%, transparent);
|
|
@@ -4831,6 +4904,14 @@
|
|
|
4831
4904
|
background-color: var(--color-green-900);
|
|
4832
4905
|
}
|
|
4833
4906
|
}
|
|
4907
|
+
.dark\:bg-green-900\/20 {
|
|
4908
|
+
&:where(.dark, .dark *) {
|
|
4909
|
+
background-color: color-mix(in srgb, oklch(39.3% 0.095 152.535) 20%, transparent);
|
|
4910
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
4911
|
+
background-color: color-mix(in oklab, var(--color-green-900) 20%, transparent);
|
|
4912
|
+
}
|
|
4913
|
+
}
|
|
4914
|
+
}
|
|
4834
4915
|
.dark\:bg-green-900\/30 {
|
|
4835
4916
|
&:where(.dark, .dark *) {
|
|
4836
4917
|
background-color: color-mix(in srgb, oklch(39.3% 0.095 152.535) 30%, transparent);
|
|
@@ -4880,6 +4961,14 @@
|
|
|
4880
4961
|
background-color: var(--color-orange-900);
|
|
4881
4962
|
}
|
|
4882
4963
|
}
|
|
4964
|
+
.dark\:bg-orange-900\/50 {
|
|
4965
|
+
&:where(.dark, .dark *) {
|
|
4966
|
+
background-color: color-mix(in srgb, oklch(40.8% 0.123 38.172) 50%, transparent);
|
|
4967
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
4968
|
+
background-color: color-mix(in oklab, var(--color-orange-900) 50%, transparent);
|
|
4969
|
+
}
|
|
4970
|
+
}
|
|
4971
|
+
}
|
|
4883
4972
|
.dark\:bg-purple-600 {
|
|
4884
4973
|
&:where(.dark, .dark *) {
|
|
4885
4974
|
background-color: var(--color-purple-600);
|
|
@@ -4979,6 +5068,12 @@
|
|
|
4979
5068
|
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
|
|
4980
5069
|
}
|
|
4981
5070
|
}
|
|
5071
|
+
.dark\:from-gray-800 {
|
|
5072
|
+
&:where(.dark, .dark *) {
|
|
5073
|
+
--tw-gradient-from: var(--color-gray-800);
|
|
5074
|
+
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
|
|
5075
|
+
}
|
|
5076
|
+
}
|
|
4982
5077
|
.dark\:from-green-900\/20 {
|
|
4983
5078
|
&:where(.dark, .dark *) {
|
|
4984
5079
|
--tw-gradient-from: color-mix(in srgb, oklch(39.3% 0.095 152.535) 20%, transparent);
|
|
@@ -5175,6 +5270,16 @@
|
|
|
5175
5270
|
color: var(--color-orange-200);
|
|
5176
5271
|
}
|
|
5177
5272
|
}
|
|
5273
|
+
.dark\:text-orange-300 {
|
|
5274
|
+
&:where(.dark, .dark *) {
|
|
5275
|
+
color: var(--color-orange-300);
|
|
5276
|
+
}
|
|
5277
|
+
}
|
|
5278
|
+
.dark\:text-orange-400 {
|
|
5279
|
+
&:where(.dark, .dark *) {
|
|
5280
|
+
color: var(--color-orange-400);
|
|
5281
|
+
}
|
|
5282
|
+
}
|
|
5178
5283
|
.dark\:text-purple-100 {
|
|
5179
5284
|
&:where(.dark, .dark *) {
|
|
5180
5285
|
color: var(--color-purple-100);
|
|
@@ -5225,6 +5330,11 @@
|
|
|
5225
5330
|
color: var(--color-white);
|
|
5226
5331
|
}
|
|
5227
5332
|
}
|
|
5333
|
+
.dark\:text-yellow-400 {
|
|
5334
|
+
&:where(.dark, .dark *) {
|
|
5335
|
+
color: var(--color-yellow-400);
|
|
5336
|
+
}
|
|
5337
|
+
}
|
|
5228
5338
|
.dark\:placeholder-gray-400 {
|
|
5229
5339
|
&:where(.dark, .dark *) {
|
|
5230
5340
|
&::placeholder {
|
|
@@ -5285,6 +5395,15 @@
|
|
|
5285
5395
|
}
|
|
5286
5396
|
}
|
|
5287
5397
|
}
|
|
5398
|
+
.dark\:group-hover\:text-gray-100 {
|
|
5399
|
+
&:where(.dark, .dark *) {
|
|
5400
|
+
&:is(:where(.group):hover *) {
|
|
5401
|
+
@media (hover: hover) {
|
|
5402
|
+
color: var(--color-gray-100);
|
|
5403
|
+
}
|
|
5404
|
+
}
|
|
5405
|
+
}
|
|
5406
|
+
}
|
|
5288
5407
|
.dark\:group-hover\:text-gray-500 {
|
|
5289
5408
|
&:where(.dark, .dark *) {
|
|
5290
5409
|
&:is(:where(.group):hover *) {
|
|
@@ -5445,6 +5564,18 @@
|
|
|
5445
5564
|
}
|
|
5446
5565
|
}
|
|
5447
5566
|
}
|
|
5567
|
+
.dark\:hover\:bg-fuchsia-900\/40 {
|
|
5568
|
+
&:where(.dark, .dark *) {
|
|
5569
|
+
&:hover {
|
|
5570
|
+
@media (hover: hover) {
|
|
5571
|
+
background-color: color-mix(in srgb, oklch(40.1% 0.17 325.612) 40%, transparent);
|
|
5572
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
5573
|
+
background-color: color-mix(in oklab, var(--color-fuchsia-900) 40%, transparent);
|
|
5574
|
+
}
|
|
5575
|
+
}
|
|
5576
|
+
}
|
|
5577
|
+
}
|
|
5578
|
+
}
|
|
5448
5579
|
.dark\:hover\:bg-gray-200 {
|
|
5449
5580
|
&:where(.dark, .dark *) {
|
|
5450
5581
|
&:hover {
|
|
@@ -5532,6 +5663,18 @@
|
|
|
5532
5663
|
}
|
|
5533
5664
|
}
|
|
5534
5665
|
}
|
|
5666
|
+
.dark\:hover\:bg-green-900\/40 {
|
|
5667
|
+
&:where(.dark, .dark *) {
|
|
5668
|
+
&:hover {
|
|
5669
|
+
@media (hover: hover) {
|
|
5670
|
+
background-color: color-mix(in srgb, oklch(39.3% 0.095 152.535) 40%, transparent);
|
|
5671
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
5672
|
+
background-color: color-mix(in oklab, var(--color-green-900) 40%, transparent);
|
|
5673
|
+
}
|
|
5674
|
+
}
|
|
5675
|
+
}
|
|
5676
|
+
}
|
|
5677
|
+
}
|
|
5535
5678
|
.dark\:hover\:bg-indigo-700 {
|
|
5536
5679
|
&:where(.dark, .dark *) {
|
|
5537
5680
|
&:hover {
|
|
@@ -6231,6 +6374,35 @@
|
|
|
6231
6374
|
overflow-x: auto;
|
|
6232
6375
|
padding: 1em;
|
|
6233
6376
|
}
|
|
6377
|
+
.tool-description pre {
|
|
6378
|
+
background-color: #f8fafc !important;
|
|
6379
|
+
color: #1f2937 !important;
|
|
6380
|
+
border: 1px solid #e2e8f0;
|
|
6381
|
+
border-radius: 0.5rem;
|
|
6382
|
+
padding: 0.75rem 1rem;
|
|
6383
|
+
margin: 0.75rem 0;
|
|
6384
|
+
overflow-x: auto;
|
|
6385
|
+
}
|
|
6386
|
+
.tool-description code {
|
|
6387
|
+
color: inherit !important;
|
|
6388
|
+
}
|
|
6389
|
+
.tool-description code.hljs {
|
|
6390
|
+
background: transparent !important;
|
|
6391
|
+
padding: 0;
|
|
6392
|
+
font-size: 0.85em;
|
|
6393
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
6394
|
+
}
|
|
6395
|
+
.dark .tool-description pre {
|
|
6396
|
+
background-color: #1f2937 !important;
|
|
6397
|
+
border-color: #374151;
|
|
6398
|
+
color: #e5e7eb !important;
|
|
6399
|
+
}
|
|
6400
|
+
.dark .tool-description code {
|
|
6401
|
+
color: inherit !important;
|
|
6402
|
+
}
|
|
6403
|
+
.dark .tool-description code.hljs {
|
|
6404
|
+
color: #e5e7eb;
|
|
6405
|
+
}
|
|
6234
6406
|
.message pre {
|
|
6235
6407
|
max-width: 100%;
|
|
6236
6408
|
min-width: auto;
|
|
@@ -6429,21 +6601,33 @@
|
|
|
6429
6601
|
.message pre {
|
|
6430
6602
|
max-width: 500px !important;
|
|
6431
6603
|
}
|
|
6604
|
+
.has-iframes {
|
|
6605
|
+
min-width: 640px;
|
|
6606
|
+
}
|
|
6432
6607
|
}
|
|
6433
6608
|
@media (min-width: 768px) {
|
|
6434
6609
|
.message pre {
|
|
6435
6610
|
max-width: 600px !important;
|
|
6436
6611
|
}
|
|
6612
|
+
.has-iframes {
|
|
6613
|
+
min-width: 640px;
|
|
6614
|
+
}
|
|
6437
6615
|
}
|
|
6438
6616
|
@media (min-width: 1024px) {
|
|
6439
6617
|
.message pre, .message .prose pre {
|
|
6440
6618
|
max-width: 700px !important;
|
|
6441
6619
|
}
|
|
6620
|
+
.has-iframes {
|
|
6621
|
+
min-width: 740px;
|
|
6622
|
+
}
|
|
6442
6623
|
}
|
|
6443
6624
|
@media (min-width: 1280px) {
|
|
6444
6625
|
.message pre, .message .prose pre {
|
|
6445
6626
|
max-width: 800px !important;
|
|
6446
6627
|
}
|
|
6628
|
+
.has-iframes {
|
|
6629
|
+
min-width: 840px;
|
|
6630
|
+
}
|
|
6447
6631
|
}
|
|
6448
6632
|
}
|
|
6449
6633
|
@property --tw-border-spacing-x {
|
llms/ui/ctx.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
import { reactive, markRaw } from 'vue'
|
|
3
3
|
import { EventBus, humanize, combinePaths } from "@servicestack/client"
|
|
4
|
-
import { storageObject } from './utils.mjs'
|
|
4
|
+
import { storageObject, isHtml } from './utils.mjs'
|
|
5
5
|
|
|
6
6
|
export class ExtensionScope {
|
|
7
7
|
constructor(ctx, id) {
|
|
@@ -174,7 +174,8 @@ export class AppContext {
|
|
|
174
174
|
async init() {
|
|
175
175
|
Object.assign(this.state, await this.ai.init(this))
|
|
176
176
|
Object.assign(this.fmt, {
|
|
177
|
-
markdown: this.renderMarkdown.bind(this)
|
|
177
|
+
markdown: this.renderMarkdown.bind(this),
|
|
178
|
+
content: this.renderContent.bind(this),
|
|
178
179
|
})
|
|
179
180
|
}
|
|
180
181
|
setGlobals(globals) {
|
|
@@ -334,6 +335,9 @@ export class AppContext {
|
|
|
334
335
|
this.state.error = null
|
|
335
336
|
}
|
|
336
337
|
|
|
338
|
+
resolveUrl(url) {
|
|
339
|
+
return this.ai.resolveUrl(url)
|
|
340
|
+
}
|
|
337
341
|
async getJson(url, options) {
|
|
338
342
|
return await this.ai.getJson(url, options)
|
|
339
343
|
}
|
|
@@ -396,4 +400,13 @@ export class AppContext {
|
|
|
396
400
|
// }
|
|
397
401
|
return this.marked.parse(content || '')
|
|
398
402
|
}
|
|
399
|
-
|
|
403
|
+
|
|
404
|
+
renderContent(content) {
|
|
405
|
+
// Check for HTML tags to detect HTML content
|
|
406
|
+
if (isHtml(content)) {
|
|
407
|
+
// If this is HTML content, return it in an iframe so it doesn't break the page
|
|
408
|
+
return `<iframe src="data:text/html;charset=utf-8,${encodeURIComponent(content)}"></iframe>`
|
|
409
|
+
}
|
|
410
|
+
return this.renderMarkdown(content)
|
|
411
|
+
}
|
|
412
|
+
}
|
llms/ui/index.mjs
CHANGED
|
@@ -9,7 +9,7 @@ import ChatModule from './modules/chat/index.mjs'
|
|
|
9
9
|
import ModelSelectorModule from './modules/model-selector.mjs'
|
|
10
10
|
import IconsModule from './modules/icons.mjs'
|
|
11
11
|
import { utilsFunctions, utilsFormatters } from './utils.mjs'
|
|
12
|
-
import { marked
|
|
12
|
+
import { marked } from './markdown.mjs'
|
|
13
13
|
import { AppContext } from './ctx.mjs'
|
|
14
14
|
|
|
15
15
|
const Components = {
|