llms-py 3.0.6__py3-none-any.whl → 3.0.7__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/ui/ai.mjs CHANGED
@@ -6,7 +6,7 @@ const headers = { 'Accept': 'application/json' }
6
6
  const prefsKey = 'llms.prefs'
7
7
 
8
8
  export const o = {
9
- version: '3.0.6',
9
+ version: '3.0.7',
10
10
  base,
11
11
  prefsKey,
12
12
  welcome: 'Welcome to llms.py',
llms/ui/app.css CHANGED
@@ -32,8 +32,6 @@
32
32
  --color-yellow-500: oklch(79.5% 0.184 86.047);
33
33
  --color-yellow-600: oklch(68.1% 0.162 75.834);
34
34
  --color-yellow-700: oklch(55.4% 0.135 66.442);
35
- --color-yellow-800: oklch(47.6% 0.114 61.907);
36
- --color-yellow-900: oklch(42.1% 0.095 57.708);
37
35
  --color-green-50: oklch(98.2% 0.018 155.826);
38
36
  --color-green-100: oklch(96.2% 0.044 156.743);
39
37
  --color-green-200: oklch(92.5% 0.084 155.995);
@@ -83,6 +81,7 @@
83
81
  --color-violet-700: oklch(49.1% 0.27 292.581);
84
82
  --color-violet-800: oklch(43.2% 0.232 292.759);
85
83
  --color-violet-900: oklch(38% 0.189 293.745);
84
+ --color-purple-50: oklch(97.7% 0.014 308.299);
86
85
  --color-purple-100: oklch(94.6% 0.033 307.174);
87
86
  --color-purple-200: oklch(90.2% 0.063 306.703);
88
87
  --color-purple-300: oklch(82.7% 0.119 306.383);
@@ -1788,10 +1787,22 @@
1788
1787
  }
1789
1788
  --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));
1790
1789
  }
1790
+ .from-blue-50 {
1791
+ --tw-gradient-from: var(--color-blue-50);
1792
+ --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));
1793
+ }
1794
+ .from-green-50 {
1795
+ --tw-gradient-from: var(--color-green-50);
1796
+ --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));
1797
+ }
1791
1798
  .from-green-900 {
1792
1799
  --tw-gradient-from: var(--color-green-900);
1793
1800
  --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));
1794
1801
  }
1802
+ .from-purple-50 {
1803
+ --tw-gradient-from: var(--color-purple-50);
1804
+ --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));
1805
+ }
1795
1806
  .from-red-700 {
1796
1807
  --tw-gradient-from: var(--color-red-700);
1797
1808
  --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));
@@ -1845,10 +1856,22 @@
1845
1856
  --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
1846
1857
  --tw-gradient-stops: var(--tw-gradient-via-stops);
1847
1858
  }
1859
+ .to-blue-100 {
1860
+ --tw-gradient-to: var(--color-blue-100);
1861
+ --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));
1862
+ }
1863
+ .to-green-100 {
1864
+ --tw-gradient-to: var(--color-green-100);
1865
+ --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));
1866
+ }
1848
1867
  .to-green-900 {
1849
1868
  --tw-gradient-to: var(--color-green-900);
1850
1869
  --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));
1851
1870
  }
1871
+ .to-purple-100 {
1872
+ --tw-gradient-to: var(--color-purple-100);
1873
+ --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));
1874
+ }
1852
1875
  .to-red-900 {
1853
1876
  --tw-gradient-to: var(--color-red-900);
1854
1877
  --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));
@@ -2262,6 +2285,9 @@
2262
2285
  .text-blue-800 {
2263
2286
  color: var(--color-blue-800);
2264
2287
  }
2288
+ .text-blue-900 {
2289
+ color: var(--color-blue-900);
2290
+ }
2265
2291
  .text-cyan-600 {
2266
2292
  color: var(--color-cyan-600);
2267
2293
  }
@@ -2325,9 +2351,6 @@
2325
2351
  .text-indigo-700 {
2326
2352
  color: var(--color-indigo-700);
2327
2353
  }
2328
- .text-orange-600 {
2329
- color: var(--color-orange-600);
2330
- }
2331
2354
  .text-orange-800 {
2332
2355
  color: var(--color-orange-800);
2333
2356
  }
@@ -2340,6 +2363,9 @@
2340
2363
  .text-purple-800 {
2341
2364
  color: var(--color-purple-800);
2342
2365
  }
2366
+ .text-purple-900 {
2367
+ color: var(--color-purple-900);
2368
+ }
2343
2369
  .text-red-400 {
2344
2370
  color: var(--color-red-400);
2345
2371
  }
@@ -4944,6 +4970,60 @@
4944
4970
  background-color: var(--color-yellow-200);
4945
4971
  }
4946
4972
  }
4973
+ .dark\:from-blue-900\/20 {
4974
+ &:where(.dark, .dark *) {
4975
+ --tw-gradient-from: color-mix(in srgb, oklch(37.9% 0.146 265.522) 20%, transparent);
4976
+ @supports (color: color-mix(in lab, red, red)) {
4977
+ --tw-gradient-from: color-mix(in oklab, var(--color-blue-900) 20%, transparent);
4978
+ }
4979
+ --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
+ }
4981
+ }
4982
+ .dark\:from-green-900\/20 {
4983
+ &:where(.dark, .dark *) {
4984
+ --tw-gradient-from: color-mix(in srgb, oklch(39.3% 0.095 152.535) 20%, transparent);
4985
+ @supports (color: color-mix(in lab, red, red)) {
4986
+ --tw-gradient-from: color-mix(in oklab, var(--color-green-900) 20%, transparent);
4987
+ }
4988
+ --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));
4989
+ }
4990
+ }
4991
+ .dark\:from-purple-900\/20 {
4992
+ &:where(.dark, .dark *) {
4993
+ --tw-gradient-from: color-mix(in srgb, oklch(38.1% 0.176 304.987) 20%, transparent);
4994
+ @supports (color: color-mix(in lab, red, red)) {
4995
+ --tw-gradient-from: color-mix(in oklab, var(--color-purple-900) 20%, transparent);
4996
+ }
4997
+ --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));
4998
+ }
4999
+ }
5000
+ .dark\:to-blue-800\/20 {
5001
+ &:where(.dark, .dark *) {
5002
+ --tw-gradient-to: color-mix(in srgb, oklch(42.4% 0.199 265.638) 20%, transparent);
5003
+ @supports (color: color-mix(in lab, red, red)) {
5004
+ --tw-gradient-to: color-mix(in oklab, var(--color-blue-800) 20%, transparent);
5005
+ }
5006
+ --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));
5007
+ }
5008
+ }
5009
+ .dark\:to-green-800\/20 {
5010
+ &:where(.dark, .dark *) {
5011
+ --tw-gradient-to: color-mix(in srgb, oklch(44.8% 0.119 151.328) 20%, transparent);
5012
+ @supports (color: color-mix(in lab, red, red)) {
5013
+ --tw-gradient-to: color-mix(in oklab, var(--color-green-800) 20%, transparent);
5014
+ }
5015
+ --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));
5016
+ }
5017
+ }
5018
+ .dark\:to-purple-800\/20 {
5019
+ &:where(.dark, .dark *) {
5020
+ --tw-gradient-to: color-mix(in srgb, oklch(43.8% 0.218 303.724) 20%, transparent);
5021
+ @supports (color: color-mix(in lab, red, red)) {
5022
+ --tw-gradient-to: color-mix(in oklab, var(--color-purple-800) 20%, transparent);
5023
+ }
5024
+ --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));
5025
+ }
5026
+ }
4947
5027
  .dark\:fill-gray-300 {
4948
5028
  &:where(.dark, .dark *) {
4949
5029
  fill: var(--color-gray-300);
@@ -4954,6 +5034,11 @@
4954
5034
  color: var(--color-black);
4955
5035
  }
4956
5036
  }
5037
+ .dark\:text-blue-100 {
5038
+ &:where(.dark, .dark *) {
5039
+ color: var(--color-blue-100);
5040
+ }
5041
+ }
4957
5042
  .dark\:text-blue-200 {
4958
5043
  &:where(.dark, .dark *) {
4959
5044
  color: var(--color-blue-200);
@@ -5090,9 +5175,9 @@
5090
5175
  color: var(--color-orange-200);
5091
5176
  }
5092
5177
  }
5093
- .dark\:text-orange-400 {
5178
+ .dark\:text-purple-100 {
5094
5179
  &:where(.dark, .dark *) {
5095
- color: var(--color-orange-400);
5180
+ color: var(--color-purple-100);
5096
5181
  }
5097
5182
  }
5098
5183
  .dark\:text-purple-300 {
@@ -10,7 +10,7 @@ const MessageUsage = {
10
10
  •
11
11
  {{ $fmt.humanifyNumber(usage.tokens) }} tokens
12
12
  <span v-if="usage.cost">&#183; {{ $fmt.tokenCostLong(usage.cost) }}</span>
13
- <span v-if="usage.duration"> in {{ $fmt.humanifyMs(usage.duration) }}</span>
13
+ <span v-if="usage.duration"> in {{ $fmt.humanifyMs(usage.duration * 1000) }}</span>
14
14
  </span>
15
15
  </div>
16
16
  `,
@@ -289,7 +289,7 @@ export default {
289
289
 
290
290
  <div v-if="currentThread.stats && currentThread.stats.outputTokens" class="text-center text-gray-500 dark:text-gray-400 text-sm">
291
291
  <span :title="$fmt.statsTitle(currentThread.stats)">
292
- {{ currentThread.stats.cost ? $fmt.costLong(currentThread.stats.cost) + ' for ' : '' }} {{ $fmt.humanifyNumber(currentThread.stats.inputTokens) }} → {{ $fmt.humanifyNumber(currentThread.stats.outputTokens) }} tokens over {{ currentThread.stats.requests }} request{{currentThread.stats.requests===1?'':'s'}} in {{ $fmt.humanifyMs(currentThread.stats.duration) }}
292
+ {{ currentThread.stats.cost ? $fmt.costLong(currentThread.stats.cost) + ' for ' : '' }} {{ $fmt.humanifyNumber(currentThread.stats.inputTokens) }} → {{ $fmt.humanifyNumber(currentThread.stats.outputTokens) }} tokens over {{ currentThread.stats.requests }} request{{currentThread.stats.requests===1?'':'s'}} in {{ $fmt.humanifyMs(currentThread.stats.duration * 1000) }}
293
293
  </span>
294
294
  </div>
295
295
 
@@ -466,11 +466,11 @@ const ChatPrompt = {
466
466
  </div>
467
467
 
468
468
  <!-- Image Aspect Ratio Selector -->
469
- <div v-if="$chat.canGenerateImage(model)" class="min-w-[120px]">
469
+ <div v-if="$chat.canGenerateImage(model)">
470
470
  <select name="aspect_ratio" v-model="$state.selectedAspectRatio"
471
471
  class="block w-full rounded-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-xs text-gray-700 dark:text-gray-300 pl-2 pr-6 py-1 focus:ring-blue-500 focus:border-blue-500">
472
472
  <option v-for="(ratio, size) in imageAspectRatios" :key="size" :value="size">
473
- {{ size }} ({{ ratio }})
473
+ {{ ratio }}
474
474
  </option>
475
475
  </select>
476
476
  </div>
llms/ui/utils.mjs CHANGED
@@ -97,14 +97,14 @@ export function pluralize(word, count) {
97
97
  const currFmt2 = new Intl.NumberFormat(undefined, { style: 'currency', currency: 'USD', maximumFractionDigits: 2 })
98
98
  const currFmt6 = new Intl.NumberFormat(undefined, { style: 'currency', currency: 'USD', maximumFractionDigits: 6 })
99
99
 
100
- export function tokenCost(price, tokens = 1) {
100
+ export function tokenCost(price, tokens = 1000000) {
101
101
  if (!price) return ''
102
- var ret = currFmt2.format(parseFloat(price) * tokens)
102
+ var ret = currFmt2.format(parseFloat(price) * (tokens / 1000000))
103
103
  return ret.endsWith('.00') ? ret.slice(0, -3) : ret
104
104
  }
105
- export function tokenCostLong(price, tokens = 1) {
105
+ export function tokenCostLong(price, tokens = 1000000) {
106
106
  if (!price) return ''
107
- const ret = currFmt6.format(parseFloat(price) * tokens)
107
+ const ret = currFmt6.format(parseFloat(price) * (tokens / 1000000))
108
108
  return ret.endsWith('.000000') ? ret.slice(0, -7) : ret
109
109
  }
110
110
  export function formatCost(cost) {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: llms-py
3
- Version: 3.0.6
3
+ Version: 3.0.7
4
4
  Summary: A lightweight CLI tool and OpenAI-compatible server for querying multiple Large Language Model (LLM) providers
5
5
  Home-page: https://github.com/ServiceStack/llms
6
6
  Author: ServiceStack
@@ -2,13 +2,13 @@ llms/__init__.py,sha256=DKwTZDsyYL_wHe7yvLw49Nf8PSgPSyWaeVdotUqSvrQ,84
2
2
  llms/__main__.py,sha256=hrBulHIt3lmPm1BCyAEVtB6DQ0Hvc3gnIddhHCmJasg,151
3
3
  llms/db.py,sha256=oozp5I5lECVO8oZEFwcZl3ES5mARqWeR1BkoqG5kSqM,11687
4
4
  llms/index.html,sha256=nGk1Djtn9p7l6LuKp4Kg0JIB9fCzxtTWXFfmDb4ggpc,1658
5
- llms/llms.json,sha256=esbR3GFEFura3Ajw02HjepGf0AlJPFhQlOPBjT_Lekc,11156
6
- llms/main.py,sha256=-KhtOKzdJeKj27FjIEaqKuL-dE2ejYAcnPsZrY3j0CE,157027
7
- llms/providers-extra.json,sha256=w7_5gB0YUPK0PJNeViM7vRDfNGChXUKMHfGHenVxEkM,10165
8
- llms/providers.json,sha256=Hc1STJW9hqM_MWBjeJljs_0I3bTo6qhGlEsL0o-dUuA,285221
9
- llms/extensions/analytics/ui/index.mjs,sha256=cr9dPmEJjha2xX6A_7xbJxkOolWFP1p6TgIoO8M8juI,69540
5
+ llms/llms.json,sha256=NEr9kJRkUGZ2YZHbWC-haGPlVVL2Qtnx4kKZENGH1wk,11494
6
+ llms/main.py,sha256=sVKouu2hGMbXnQ9fQwmz7TgX5LBBfqhSCSYdkvynKKw,157499
7
+ llms/providers-extra.json,sha256=_6DmGBiQY9LM6_Y0zOiObYn7ba4g3akSNQfmHcYlENc,11101
8
+ llms/providers.json,sha256=yjhDurlwo70xqfV0HNLiZaCpw3WvtIgkjoLahQIKX2w,282530
9
+ llms/extensions/analytics/ui/index.mjs,sha256=m1XwaqYCLwK267JAUCAltkN_nOXep0GxfpvGNS5i4_w,69547
10
10
  llms/extensions/app/README.md,sha256=TKoblZpHlheLCh_dfXOxqTc5OvxlgMBa-vKo8Hqb2gg,1370
11
- llms/extensions/app/__init__.py,sha256=eOdIGG7jrQhBZ-ndNlvbTFOhZlH9n1tG-WvqJw8cakA,20812
11
+ llms/extensions/app/__init__.py,sha256=aU8Bfliw--Xj1bsKL3PSoX6MY1ZNgweNyMWS1V_YG4s,20855
12
12
  llms/extensions/app/db.py,sha256=CqpHReXXjrLXXNxINo-wsnBJenKZVVHKlWlhtXFWj08,21503
13
13
  llms/extensions/app/ui/Recents.mjs,sha256=HT9R2IEus3dGEqtKPGrgX1eMp4EQ2j2jLwv-Fn1Us5E,9253
14
14
  llms/extensions/app/ui/index.mjs,sha256=sB9176LLNuKFsZ28yL-tROA6J4xePNtvxtSrzFcinRo,13271
@@ -127,14 +127,15 @@ llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff2,sha256=pK99QURAocF5CCXP
127
127
  llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.ttf,sha256=8B8-h9nGphwMCBzrV3q9hk6wCmEvesFiDdaRX60u9ao,27556
128
128
  llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff,sha256=4U_tArGrp86fWv1YRLXQMhsiNR_rxyDg3ouHI1J2Cfc,16028
129
129
  llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff2,sha256=cdUX1ngneHz6vfGGkUzDNY7aU543kxlB8rL9SiH2jAs,13568
130
- llms/extensions/providers/__init__.py,sha256=_fhcf1ixfiwyV2D1_BR8ZzbWF-NJm-O3D8WXjzs5eAE,484
131
- llms/extensions/providers/anthropic.py,sha256=j8TZKhD6oe8O55T6BW4qWB-vGqUkdzLv4gDjDEHlBV4,10438
130
+ llms/extensions/providers/__init__.py,sha256=C5zOBQEOB2L96rAZdjV42fPVk_dZxSh2Dv30Kb1w3lE,534
131
+ llms/extensions/providers/anthropic.py,sha256=LAOdpa_cP1zBUvSQ-ct3kVjRga-nPJ1U_KBb99N4IEk,10429
132
132
  llms/extensions/providers/cerebras.py,sha256=HaeFW0GwbD6V6Zrrwqyv78kQb0VXg9oHmykvJfIOOYE,1417
133
- llms/extensions/providers/chutes.py,sha256=JqQ6pxxcocImV3v6dwUyq33FLU44Yym_VwY-XENrowA,6331
133
+ llms/extensions/providers/chutes.py,sha256=5ZrfbqoOhgzKLQy_qULcp4jlvW5WXPR0jP9kN2Jzb9g,6229
134
134
  llms/extensions/providers/google.py,sha256=JBC9KZtjlwykPU4N7FpXZJH7sgsZf4B6RNRhNL79juw,24413
135
- llms/extensions/providers/nvidia.py,sha256=cMNW6HnOPckwSgkHPnGV7R60Yvdmccp2lsH-jlGlN1g,4397
136
- llms/extensions/providers/openai.py,sha256=dY8R_BDXTLMq21h-ZSoOPYkpbNl64CYUpcpbCkL8fcg,6265
135
+ llms/extensions/providers/nvidia.py,sha256=C6cwqn3EufYDfRIgbc8MDkQNyD6w3c7hbjfYaHJSDik,4279
136
+ llms/extensions/providers/openai.py,sha256=hkE-LVsw6M92_qEbpayuPo17Z1OWKHe7lm2wduLMng8,6138
137
137
  llms/extensions/providers/openrouter.py,sha256=5SfCJKo1aGKoDGez6HXYQe9elMMo9sSEDFqqdxamAgA,3330
138
+ llms/extensions/providers/zai.py,sha256=WPJlDxmnjuhxlgWhUXw2MYqgEKYfy14wVQbpQyMMlbU,7736
138
139
  llms/extensions/system_prompts/README.md,sha256=ayr18lnSsGp62bunC6kxkvcSvZki775rbZ-8VoMDQEc,597
139
140
  llms/extensions/system_prompts/__init__.py,sha256=TZy1CS2dPkBNBA_Ovf9BlVetZqTt2NgnsrZi6Mtg_C0,1535
140
141
  llms/extensions/system_prompts/ui/index.mjs,sha256=_pVCreAebSzE9dzcHF2kiYODwP-fDHCqtUQB-X5Io9Q,12107
@@ -142,15 +143,15 @@ llms/extensions/system_prompts/ui/prompts.json,sha256=t5DD3bird-87wFa4OlW-bC2wdo
142
143
  llms/extensions/tools/__init__.py,sha256=yfIK7dVqYiZGX5VeJ3x7HQWLPQfuPqeNYJsd0lpZUM4,120
143
144
  llms/extensions/tools/ui/index.mjs,sha256=Nu69U6odCUh8uu1i8d5f8ryO4Lj_OFbPX2LnVyYu1fk,9602
144
145
  llms/ui/App.mjs,sha256=zU-GtbcSMREizjUS9nWiMK6m_oT14MNJ-p_RCz2RVqA,7445
145
- llms/ui/ai.mjs,sha256=9bLrX3OSrJBTU3wiOehxwvpInpsyvmDMkiopLiUGclY,6540
146
- llms/ui/app.css,sha256=6iQiPeFZ_7pcf6RB1b7tvh6EY22A9lCn9SCCmoJKP2I,176402
146
+ llms/ui/ai.mjs,sha256=uuAoDpjTwjRsMX9Ru1R6imK9pTUbFk0D9j4RUORN20A,6540
147
+ llms/ui/app.css,sha256=4vn_t3-8gEFcVi_hNMgpjmI7pxvIFPqXaSdFCmltLDs,181153
147
148
  llms/ui/ctx.mjs,sha256=eFTkWzVBKRU5YDFFVUq3ZDd6eMPa4VRQpE3q0O5Sfgg,12337
148
149
  llms/ui/fav.svg,sha256=_R6MFeXl6wBFT0lqcUxYQIDWgm246YH_3hSTW0oO8qw,734
149
150
  llms/ui/index.mjs,sha256=o-J2GVYYGFtfV4Pzlj-kjK4UrVP6ovTre5jD44gAiIc,4316
150
151
  llms/ui/markdown.mjs,sha256=ZeGXxX4_UEUCVkLZzmwXlqWBfReSFzBivdxNu8uSgFk,6648
151
152
  llms/ui/tailwind.input.css,sha256=ZneSjo_uNcvqMT8cAU837yUZoLZ_sWfgr5Gto7TNJPc,15786
152
153
  llms/ui/typography.css,sha256=6o7pbMIamRVlm2GfzSStpcOG4T5eFCK_WcQ3RIHKAsU,19587
153
- llms/ui/utils.mjs,sha256=Vv2YsKaOJCNYrxv19q-gU1wSuuMhEcTcm6M7_g9Ff0Y,6664
154
+ llms/ui/utils.mjs,sha256=puVg5PHMW6GQP3ZSAj9eEgFdA10aHjCDd6ty4-wMeBw,6700
154
155
  llms/ui/lib/chart.js,sha256=dx8FdDX0Rv6OZtZjr9FQh5h-twFsKjfnb-FvFlQ--cU,196176
155
156
  llms/ui/lib/charts.mjs,sha256=OPFAifcA4MPRv8pw6I7glVh7Xccv8guio0k35zPBDIY,926
156
157
  llms/ui/lib/color.js,sha256=DDG7Pr-qzJHTPISZNSqP_qJR8UflKHEc_56n6xrBugQ,8273
@@ -165,12 +166,12 @@ llms/ui/lib/vue.mjs,sha256=75FuLhUTPk19sncwNIrm0BGEL0_Qw298-_v01fPWYoI,542872
165
166
  llms/ui/modules/icons.mjs,sha256=LGcH0ys0QLS2ZKCO42qHpwPYbBV_EssoWLezU4XZEzU,27751
166
167
  llms/ui/modules/layout.mjs,sha256=8pAxs8bedQI3b3eRA9nrfpLZznLmrpp4BZvigYAQjpQ,12572
167
168
  llms/ui/modules/model-selector.mjs,sha256=6U4rAZ7vmQELFRQGWk4YEtq02v3lyHdMq6yUOp-ArXg,43184
168
- llms/ui/modules/chat/ChatBody.mjs,sha256=YbpIEl6OeBi1RqCPkW5UFbUk6qNi5B_GfRUK5Pmfms8,42875
169
+ llms/ui/modules/chat/ChatBody.mjs,sha256=u1K8UfG-YNi_5lyyWdpcXekyXUWihNe25IsjcCDnT1E,42889
169
170
  llms/ui/modules/chat/SettingsDialog.mjs,sha256=HMBJTwrapKrRIAstIIqp0QlJL5O-ho4hzgvfagPfsX8,19930
170
- llms/ui/modules/chat/index.mjs,sha256=3arA5PigH6BdBDqi5SbgcNkEIETENYNNxWF3Ro7HFsM,39349
171
- llms_py-3.0.6.dist-info/licenses/LICENSE,sha256=bus9cuAOWeYqBk2OuhSABVV1P4z7hgrEFISpyda_H5w,1532
172
- llms_py-3.0.6.dist-info/METADATA,sha256=o8-oUNHj2mr942bU-M_MOWCm3LQOk0IcSl3sYrlxk6g,2191
173
- llms_py-3.0.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
174
- llms_py-3.0.6.dist-info/entry_points.txt,sha256=WswyE7PfnkZMIxboC-MS6flBD6wm-CYU7JSUnMhqMfM,40
175
- llms_py-3.0.6.dist-info/top_level.txt,sha256=gC7hk9BKSeog8gyg-EM_g2gxm1mKHwFRfK-10BxOsa4,5
176
- llms_py-3.0.6.dist-info/RECORD,,
171
+ llms/ui/modules/chat/index.mjs,sha256=BzfDMVVV33kQgJvwFMiTCYUy76g7lfc9JYuRytiwfU0,39314
172
+ llms_py-3.0.7.dist-info/licenses/LICENSE,sha256=bus9cuAOWeYqBk2OuhSABVV1P4z7hgrEFISpyda_H5w,1532
173
+ llms_py-3.0.7.dist-info/METADATA,sha256=o9PwqaR6lxJbKkn-HJjxVN1f8TMM8LGSxaGeQosYvgk,2191
174
+ llms_py-3.0.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
175
+ llms_py-3.0.7.dist-info/entry_points.txt,sha256=WswyE7PfnkZMIxboC-MS6flBD6wm-CYU7JSUnMhqMfM,40
176
+ llms_py-3.0.7.dist-info/top_level.txt,sha256=gC7hk9BKSeog8gyg-EM_g2gxm1mKHwFRfK-10BxOsa4,5
177
+ llms_py-3.0.7.dist-info/RECORD,,