llms-py 3.0.6__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/analytics/ui/index.mjs +1 -1
- llms/extensions/app/__init__.py +3 -1
- 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/__init__.py +2 -0
- llms/extensions/providers/anthropic.py +1 -1
- llms/extensions/providers/chutes.py +7 -9
- llms/extensions/providers/google.py +3 -3
- llms/extensions/providers/nvidia.py +9 -11
- llms/extensions/providers/openai.py +1 -3
- llms/extensions/providers/zai.py +182 -0
- llms/extensions/tools/__init__.py +140 -1
- llms/extensions/tools/ui/index.mjs +552 -50
- llms/llms.json +14 -2
- llms/main.py +461 -99
- llms/providers-extra.json +38 -0
- llms/providers.json +1 -1
- llms/ui/App.mjs +1 -1
- llms/ui/ai.mjs +1 -1
- llms/ui/app.css +287 -18
- llms/ui/ctx.mjs +16 -3
- llms/ui/index.mjs +1 -1
- llms/ui/modules/chat/ChatBody.mjs +384 -107
- llms/ui/modules/chat/index.mjs +18 -4
- llms/ui/tailwind.input.css +54 -0
- llms/ui/utils.mjs +33 -4
- {llms_py-3.0.6.dist-info → llms_py-3.0.8.dist-info}/METADATA +1 -1
- {llms_py-3.0.6.dist-info → llms_py-3.0.8.dist-info}/RECORD +33 -32
- {llms_py-3.0.6.dist-info → llms_py-3.0.8.dist-info}/WHEEL +0 -0
- {llms_py-3.0.6.dist-info → llms_py-3.0.8.dist-info}/entry_points.txt +0 -0
- {llms_py-3.0.6.dist-info → llms_py-3.0.8.dist-info}/licenses/LICENSE +0 -0
- {llms_py-3.0.6.dist-info → llms_py-3.0.8.dist-info}/top_level.txt +0 -0
llms/ui/tailwind.input.css
CHANGED
|
@@ -351,6 +351,44 @@
|
|
|
351
351
|
padding: 1em;
|
|
352
352
|
}
|
|
353
353
|
|
|
354
|
+
/* Tool Description Code Blocks - Light Mode by default */
|
|
355
|
+
.tool-description pre {
|
|
356
|
+
background-color: #f8fafc !important;
|
|
357
|
+
color: #1f2937 !important;
|
|
358
|
+
border: 1px solid #e2e8f0;
|
|
359
|
+
border-radius: 0.5rem;
|
|
360
|
+
padding: 0.75rem 1rem;
|
|
361
|
+
margin: 0.75rem 0;
|
|
362
|
+
overflow-x: auto;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
.tool-description code {
|
|
366
|
+
color: inherit !important;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
.tool-description code.hljs {
|
|
370
|
+
background: transparent !important;
|
|
371
|
+
padding: 0;
|
|
372
|
+
font-size: 0.85em;
|
|
373
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
|
|
377
|
+
/* Dark Mode Overrides */
|
|
378
|
+
.dark .tool-description pre {
|
|
379
|
+
background-color: #1f2937 !important;
|
|
380
|
+
border-color: #374151;
|
|
381
|
+
color: #e5e7eb !important;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
.dark .tool-description code {
|
|
385
|
+
color: inherit !important;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
.dark .tool-description code.hljs {
|
|
389
|
+
color: #e5e7eb;
|
|
390
|
+
}
|
|
391
|
+
|
|
354
392
|
.message pre {
|
|
355
393
|
max-width: 100%;
|
|
356
394
|
min-width: auto;
|
|
@@ -662,12 +700,20 @@
|
|
|
662
700
|
.message pre {
|
|
663
701
|
max-width: 500px !important;
|
|
664
702
|
}
|
|
703
|
+
|
|
704
|
+
.has-iframes {
|
|
705
|
+
min-width: 640px;
|
|
706
|
+
}
|
|
665
707
|
}
|
|
666
708
|
|
|
667
709
|
@media (min-width: 768px) {
|
|
668
710
|
.message pre {
|
|
669
711
|
max-width: 600px !important;
|
|
670
712
|
}
|
|
713
|
+
|
|
714
|
+
.has-iframes {
|
|
715
|
+
min-width: 640px;
|
|
716
|
+
}
|
|
671
717
|
}
|
|
672
718
|
|
|
673
719
|
@media (min-width: 1024px) {
|
|
@@ -676,6 +722,10 @@
|
|
|
676
722
|
.message .prose pre {
|
|
677
723
|
max-width: 700px !important;
|
|
678
724
|
}
|
|
725
|
+
|
|
726
|
+
.has-iframes {
|
|
727
|
+
min-width: 740px;
|
|
728
|
+
}
|
|
679
729
|
}
|
|
680
730
|
|
|
681
731
|
@media (min-width: 1280px) {
|
|
@@ -684,5 +734,9 @@
|
|
|
684
734
|
.message .prose pre {
|
|
685
735
|
max-width: 800px !important;
|
|
686
736
|
}
|
|
737
|
+
|
|
738
|
+
.has-iframes {
|
|
739
|
+
min-width: 840px;
|
|
740
|
+
}
|
|
687
741
|
}
|
|
688
742
|
}
|
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 =
|
|
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 =
|
|
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) {
|
|
@@ -123,6 +123,7 @@ export function tokensTitle(usage) {
|
|
|
123
123
|
return title.join('\n')
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
+
|
|
126
127
|
// Accessible in views via $fmt
|
|
127
128
|
export function utilsFormatters() {
|
|
128
129
|
function relativeTime(timestamp) {
|
|
@@ -202,6 +203,32 @@ export function utilsFormatters() {
|
|
|
202
203
|
}
|
|
203
204
|
}
|
|
204
205
|
|
|
206
|
+
const htmlStartTags = ['<!doctype', '<html', '<head', '<body', '<script', '<style', '<link']
|
|
207
|
+
export function isHtml(s) {
|
|
208
|
+
if (!s || typeof s != 'string') return false
|
|
209
|
+
const lower = s.toLowerCase().trim()
|
|
210
|
+
const isHtml = htmlStartTags.some(tag => lower.startsWith(tag))
|
|
211
|
+
return isHtml
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* @param {object|array} type
|
|
216
|
+
* @param {'div'|'table'|'thead'|'th'|'tr'|'td'} tag
|
|
217
|
+
* @param {number} depth
|
|
218
|
+
* @param {string} cls
|
|
219
|
+
* @param {number} index
|
|
220
|
+
*/
|
|
221
|
+
function htmlFormatClasses(type, tag, depth, cls, index) {
|
|
222
|
+
cls = cls.replace('shadow ring-1 ring-black/5 md:rounded-lg', '')
|
|
223
|
+
if (tag == 'th') {
|
|
224
|
+
cls += ' lowercase'
|
|
225
|
+
}
|
|
226
|
+
if (tag == 'td') {
|
|
227
|
+
cls += ' whitespace-pre-wrap'
|
|
228
|
+
}
|
|
229
|
+
return cls
|
|
230
|
+
}
|
|
231
|
+
|
|
205
232
|
/**
|
|
206
233
|
* Returns an ever-increasing unique integer id.
|
|
207
234
|
*/
|
|
@@ -227,6 +254,8 @@ export function utilsFunctions() {
|
|
|
227
254
|
deepClone,
|
|
228
255
|
toModelInfo,
|
|
229
256
|
pluralize,
|
|
257
|
+
isHtml,
|
|
258
|
+
htmlFormatClasses,
|
|
230
259
|
}
|
|
231
260
|
}
|
|
232
261
|
|
|
@@ -2,19 +2,19 @@ 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=
|
|
6
|
-
llms/main.py,sha256
|
|
7
|
-
llms/providers-extra.json,sha256=
|
|
8
|
-
llms/providers.json,sha256=
|
|
9
|
-
llms/extensions/analytics/ui/index.mjs,sha256=
|
|
5
|
+
llms/llms.json,sha256=NEr9kJRkUGZ2YZHbWC-haGPlVVL2Qtnx4kKZENGH1wk,11494
|
|
6
|
+
llms/main.py,sha256=fqfG6QqflDwvsqUIscSMIc-15GetyBeRY4YJAIqCnSs,169747
|
|
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=
|
|
11
|
+
llms/extensions/app/__init__.py,sha256=aU8Bfliw--Xj1bsKL3PSoX6MY1ZNgweNyMWS1V_YG4s,20855
|
|
12
12
|
llms/extensions/app/db.py,sha256=CqpHReXXjrLXXNxINo-wsnBJenKZVVHKlWlhtXFWj08,21503
|
|
13
|
-
llms/extensions/app/ui/Recents.mjs,sha256=
|
|
13
|
+
llms/extensions/app/ui/Recents.mjs,sha256=2ypAKUp9_Oqcive1nUWZ8I2PQTBomBg_Pkjygi4oPgs,9261
|
|
14
14
|
llms/extensions/app/ui/index.mjs,sha256=sB9176LLNuKFsZ28yL-tROA6J4xePNtvxtSrzFcinRo,13271
|
|
15
|
-
llms/extensions/app/ui/threadStore.mjs,sha256=
|
|
15
|
+
llms/extensions/app/ui/threadStore.mjs,sha256=CLlD-1HBO1yhZBHLfL0ZdA4quT4R07qr1JW4a8igVNc,12287
|
|
16
16
|
llms/extensions/core_tools/CALCULATOR.md,sha256=pJRtCVF01BgxFrSNh2Ys_lrRi3SFwLgJzAX93AGh93Q,1944
|
|
17
|
-
llms/extensions/core_tools/__init__.py,sha256=
|
|
17
|
+
llms/extensions/core_tools/__init__.py,sha256=Y5ZlcSg5yVXxIGX_FVbDcHyeXx3ex_rzRQ2hli6Nk38,23280
|
|
18
18
|
llms/extensions/core_tools/ui/index.mjs,sha256=KycJ2FcQ6BieBY7fjWGxVBGHN6WuFx712OFrO6flXww,31770
|
|
19
19
|
llms/extensions/core_tools/ui/codemirror/codemirror.css,sha256=60lOqXLSZh74b39qxlbdZ4bXIeScnBtG4euWfktvm_M,8720
|
|
20
20
|
llms/extensions/core_tools/ui/codemirror/codemirror.js,sha256=7cA89SlK249o7tVfiEWIiqDEA6ZEWxX4CoZmofVA14s,402008
|
|
@@ -127,30 +127,31 @@ 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=
|
|
131
|
-
llms/extensions/providers/anthropic.py,sha256=
|
|
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=
|
|
134
|
-
llms/extensions/providers/google.py,sha256=
|
|
135
|
-
llms/extensions/providers/nvidia.py,sha256=
|
|
136
|
-
llms/extensions/providers/openai.py,sha256=
|
|
133
|
+
llms/extensions/providers/chutes.py,sha256=5ZrfbqoOhgzKLQy_qULcp4jlvW5WXPR0jP9kN2Jzb9g,6229
|
|
134
|
+
llms/extensions/providers/google.py,sha256=9P90bEefRA18tpjfEuAz1T5YpwzdOngrTFhw-LI3eXg,24434
|
|
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
|
|
141
142
|
llms/extensions/system_prompts/ui/prompts.json,sha256=t5DD3bird-87wFa4OlW-bC2wdoYDrVzfyc8TO5OaotI,128489
|
|
142
|
-
llms/extensions/tools/__init__.py,sha256=
|
|
143
|
-
llms/extensions/tools/ui/index.mjs,sha256=
|
|
144
|
-
llms/ui/App.mjs,sha256=
|
|
145
|
-
llms/ui/ai.mjs,sha256=
|
|
146
|
-
llms/ui/app.css,sha256=
|
|
147
|
-
llms/ui/ctx.mjs,sha256=
|
|
143
|
+
llms/extensions/tools/__init__.py,sha256=u76604Cn_sRFQRqeA_pkVEty27V688Mt9Z7Kh63yDr8,4825
|
|
144
|
+
llms/extensions/tools/ui/index.mjs,sha256=IbGB2FQJ5VL4a8arwoR9C79vUCNrz8VIyQnHZ4vxU9o,34486
|
|
145
|
+
llms/ui/App.mjs,sha256=CoUzO9mV__-jV19NKHYIbwHsjWMnO11jyNSbnJhe1gQ,7486
|
|
146
|
+
llms/ui/ai.mjs,sha256=HViKrogWE2PWiu70qz7M-svbHKi1zVibdI8K2QrR6_0,6540
|
|
147
|
+
llms/ui/app.css,sha256=s74IHYR4RYoe8S13_yiqmHUG58M9AbDccbQ3HfdFdkg,186262
|
|
148
|
+
llms/ui/ctx.mjs,sha256=X4scgXEQ9bMUfQl36sM4A3o2Ufad3LRwItxfmSu1xwc,12838
|
|
148
149
|
llms/ui/fav.svg,sha256=_R6MFeXl6wBFT0lqcUxYQIDWgm246YH_3hSTW0oO8qw,734
|
|
149
|
-
llms/ui/index.mjs,sha256=
|
|
150
|
+
llms/ui/index.mjs,sha256=7GMbFyG3L4k6dxSrQYQ0BLzqL976xw5HeaqKco0THHA,4296
|
|
150
151
|
llms/ui/markdown.mjs,sha256=ZeGXxX4_UEUCVkLZzmwXlqWBfReSFzBivdxNu8uSgFk,6648
|
|
151
|
-
llms/ui/tailwind.input.css,sha256=
|
|
152
|
+
llms/ui/tailwind.input.css,sha256=xOrT0m8HCZRHhnPv4K43HyQCTO_0SpP-tYvxpP8jzYY,17027
|
|
152
153
|
llms/ui/typography.css,sha256=6o7pbMIamRVlm2GfzSStpcOG4T5eFCK_WcQ3RIHKAsU,19587
|
|
153
|
-
llms/ui/utils.mjs,sha256=
|
|
154
|
+
llms/ui/utils.mjs,sha256=lurZdnTk4ngR7ziWKeUNvpWVmBg2V6phqngBYWcCL5U,7483
|
|
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=
|
|
169
|
+
llms/ui/modules/chat/ChatBody.mjs,sha256=8k81r1HTxrkmLsG7xvDmYMInThiZ37xVQBfld1tLWW0,50366
|
|
169
170
|
llms/ui/modules/chat/SettingsDialog.mjs,sha256=HMBJTwrapKrRIAstIIqp0QlJL5O-ho4hzgvfagPfsX8,19930
|
|
170
|
-
llms/ui/modules/chat/index.mjs,sha256=
|
|
171
|
-
llms_py-3.0.
|
|
172
|
-
llms_py-3.0.
|
|
173
|
-
llms_py-3.0.
|
|
174
|
-
llms_py-3.0.
|
|
175
|
-
llms_py-3.0.
|
|
176
|
-
llms_py-3.0.
|
|
171
|
+
llms/ui/modules/chat/index.mjs,sha256=lfSbERMaM3bLsKhdJJPWwL4-FGr8U_ftlvqW5vC3T1s,39762
|
|
172
|
+
llms_py-3.0.8.dist-info/licenses/LICENSE,sha256=bus9cuAOWeYqBk2OuhSABVV1P4z7hgrEFISpyda_H5w,1532
|
|
173
|
+
llms_py-3.0.8.dist-info/METADATA,sha256=cRqd2LtGH_jsnLN4IzvCvUQ3qnPKBLpsJTc_qDuQE1A,2191
|
|
174
|
+
llms_py-3.0.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
175
|
+
llms_py-3.0.8.dist-info/entry_points.txt,sha256=WswyE7PfnkZMIxboC-MS6flBD6wm-CYU7JSUnMhqMfM,40
|
|
176
|
+
llms_py-3.0.8.dist-info/top_level.txt,sha256=gC7hk9BKSeog8gyg-EM_g2gxm1mKHwFRfK-10BxOsa4,5
|
|
177
|
+
llms_py-3.0.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|