llms-py 2.0.9__py3-none-any.whl → 3.0.10__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/__init__.py +4 -0
- llms/__main__.py +9 -0
- llms/db.py +359 -0
- llms/extensions/analytics/ui/index.mjs +1444 -0
- llms/extensions/app/README.md +20 -0
- llms/extensions/app/__init__.py +589 -0
- llms/extensions/app/db.py +536 -0
- {llms_py-2.0.9.data/data → llms/extensions/app}/ui/Recents.mjs +100 -73
- llms_py-2.0.9.data/data/ui/Sidebar.mjs → llms/extensions/app/ui/index.mjs +150 -79
- llms/extensions/app/ui/threadStore.mjs +433 -0
- llms/extensions/core_tools/CALCULATOR.md +32 -0
- llms/extensions/core_tools/__init__.py +637 -0
- llms/extensions/core_tools/ui/codemirror/addon/edit/closebrackets.js +201 -0
- llms/extensions/core_tools/ui/codemirror/addon/edit/closetag.js +185 -0
- llms/extensions/core_tools/ui/codemirror/addon/edit/continuelist.js +101 -0
- llms/extensions/core_tools/ui/codemirror/addon/edit/matchbrackets.js +160 -0
- llms/extensions/core_tools/ui/codemirror/addon/edit/matchtags.js +66 -0
- llms/extensions/core_tools/ui/codemirror/addon/edit/trailingspace.js +27 -0
- llms/extensions/core_tools/ui/codemirror/addon/selection/active-line.js +72 -0
- llms/extensions/core_tools/ui/codemirror/addon/selection/mark-selection.js +119 -0
- llms/extensions/core_tools/ui/codemirror/addon/selection/selection-pointer.js +98 -0
- llms/extensions/core_tools/ui/codemirror/codemirror.css +344 -0
- llms/extensions/core_tools/ui/codemirror/codemirror.js +9884 -0
- llms/extensions/core_tools/ui/codemirror/doc/docs.css +225 -0
- llms/extensions/core_tools/ui/codemirror/doc/source_sans.woff +0 -0
- llms/extensions/core_tools/ui/codemirror/mode/clike/clike.js +942 -0
- llms/extensions/core_tools/ui/codemirror/mode/javascript/index.html +118 -0
- llms/extensions/core_tools/ui/codemirror/mode/javascript/javascript.js +962 -0
- llms/extensions/core_tools/ui/codemirror/mode/javascript/typescript.html +62 -0
- llms/extensions/core_tools/ui/codemirror/mode/python/python.js +402 -0
- llms/extensions/core_tools/ui/codemirror/theme/dracula.css +40 -0
- llms/extensions/core_tools/ui/codemirror/theme/mocha.css +135 -0
- llms/extensions/core_tools/ui/index.mjs +650 -0
- llms/extensions/gallery/README.md +61 -0
- llms/extensions/gallery/__init__.py +63 -0
- llms/extensions/gallery/db.py +243 -0
- llms/extensions/gallery/ui/index.mjs +482 -0
- llms/extensions/katex/README.md +39 -0
- llms/extensions/katex/__init__.py +6 -0
- llms/extensions/katex/ui/README.md +125 -0
- llms/extensions/katex/ui/contrib/auto-render.js +338 -0
- llms/extensions/katex/ui/contrib/auto-render.min.js +1 -0
- llms/extensions/katex/ui/contrib/auto-render.mjs +244 -0
- llms/extensions/katex/ui/contrib/copy-tex.js +127 -0
- llms/extensions/katex/ui/contrib/copy-tex.min.js +1 -0
- llms/extensions/katex/ui/contrib/copy-tex.mjs +105 -0
- llms/extensions/katex/ui/contrib/mathtex-script-type.js +109 -0
- llms/extensions/katex/ui/contrib/mathtex-script-type.min.js +1 -0
- llms/extensions/katex/ui/contrib/mathtex-script-type.mjs +24 -0
- llms/extensions/katex/ui/contrib/mhchem.js +3213 -0
- llms/extensions/katex/ui/contrib/mhchem.min.js +1 -0
- llms/extensions/katex/ui/contrib/mhchem.mjs +3109 -0
- llms/extensions/katex/ui/contrib/render-a11y-string.js +887 -0
- llms/extensions/katex/ui/contrib/render-a11y-string.min.js +1 -0
- llms/extensions/katex/ui/contrib/render-a11y-string.mjs +800 -0
- llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.ttf +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.ttf +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff2 +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.ttf +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff2 +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.ttf +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff2 +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.ttf +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff2 +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.ttf +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff2 +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.ttf +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.ttf +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.ttf +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.ttf +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff +0 -0
- llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- llms/extensions/katex/ui/index.mjs +92 -0
- llms/extensions/katex/ui/katex-swap.css +1230 -0
- llms/extensions/katex/ui/katex-swap.min.css +1 -0
- llms/extensions/katex/ui/katex.css +1230 -0
- llms/extensions/katex/ui/katex.js +19080 -0
- llms/extensions/katex/ui/katex.min.css +1 -0
- llms/extensions/katex/ui/katex.min.js +1 -0
- llms/extensions/katex/ui/katex.min.mjs +1 -0
- llms/extensions/katex/ui/katex.mjs +18547 -0
- llms/extensions/providers/__init__.py +22 -0
- llms/extensions/providers/anthropic.py +233 -0
- llms/extensions/providers/cerebras.py +37 -0
- llms/extensions/providers/chutes.py +153 -0
- llms/extensions/providers/google.py +481 -0
- llms/extensions/providers/nvidia.py +103 -0
- llms/extensions/providers/openai.py +154 -0
- llms/extensions/providers/openrouter.py +74 -0
- llms/extensions/providers/zai.py +182 -0
- llms/extensions/system_prompts/README.md +22 -0
- llms/extensions/system_prompts/__init__.py +45 -0
- llms/extensions/system_prompts/ui/index.mjs +280 -0
- llms/extensions/system_prompts/ui/prompts.json +1067 -0
- llms/extensions/tools/__init__.py +144 -0
- llms/extensions/tools/ui/index.mjs +706 -0
- llms/index.html +58 -0
- llms/llms.json +400 -0
- llms/main.py +4407 -0
- llms/providers-extra.json +394 -0
- llms/providers.json +1 -0
- llms/ui/App.mjs +188 -0
- llms/ui/ai.mjs +217 -0
- llms/ui/app.css +7081 -0
- llms/ui/ctx.mjs +412 -0
- llms/ui/index.mjs +131 -0
- llms/ui/lib/chart.js +14 -0
- llms/ui/lib/charts.mjs +16 -0
- llms/ui/lib/color.js +14 -0
- llms/ui/lib/servicestack-vue.mjs +37 -0
- llms/ui/lib/vue.min.mjs +13 -0
- llms/ui/lib/vue.mjs +18530 -0
- {llms_py-2.0.9.data/data → llms}/ui/markdown.mjs +33 -15
- llms/ui/modules/chat/ChatBody.mjs +976 -0
- llms/ui/modules/chat/SettingsDialog.mjs +374 -0
- llms/ui/modules/chat/index.mjs +991 -0
- llms/ui/modules/icons.mjs +46 -0
- llms/ui/modules/layout.mjs +271 -0
- llms/ui/modules/model-selector.mjs +811 -0
- llms/ui/tailwind.input.css +742 -0
- {llms_py-2.0.9.data/data → llms}/ui/typography.css +133 -7
- llms/ui/utils.mjs +261 -0
- llms_py-3.0.10.dist-info/METADATA +49 -0
- llms_py-3.0.10.dist-info/RECORD +177 -0
- llms_py-3.0.10.dist-info/entry_points.txt +2 -0
- {llms_py-2.0.9.dist-info → llms_py-3.0.10.dist-info}/licenses/LICENSE +1 -2
- llms.py +0 -1402
- llms_py-2.0.9.data/data/index.html +0 -64
- llms_py-2.0.9.data/data/llms.json +0 -447
- llms_py-2.0.9.data/data/requirements.txt +0 -1
- llms_py-2.0.9.data/data/ui/App.mjs +0 -20
- llms_py-2.0.9.data/data/ui/ChatPrompt.mjs +0 -389
- llms_py-2.0.9.data/data/ui/Main.mjs +0 -680
- llms_py-2.0.9.data/data/ui/app.css +0 -3951
- llms_py-2.0.9.data/data/ui/lib/servicestack-vue.min.mjs +0 -37
- llms_py-2.0.9.data/data/ui/lib/vue.min.mjs +0 -12
- llms_py-2.0.9.data/data/ui/tailwind.input.css +0 -261
- llms_py-2.0.9.data/data/ui/threadStore.mjs +0 -273
- llms_py-2.0.9.data/data/ui/utils.mjs +0 -114
- llms_py-2.0.9.data/data/ui.json +0 -1069
- llms_py-2.0.9.dist-info/METADATA +0 -941
- llms_py-2.0.9.dist-info/RECORD +0 -30
- llms_py-2.0.9.dist-info/entry_points.txt +0 -2
- {llms_py-2.0.9.data/data → llms}/ui/fav.svg +0 -0
- {llms_py-2.0.9.data/data → llms}/ui/lib/highlight.min.mjs +0 -0
- {llms_py-2.0.9.data/data → llms}/ui/lib/idb.min.mjs +0 -0
- {llms_py-2.0.9.data/data → llms}/ui/lib/marked.min.mjs +0 -0
- /llms_py-2.0.9.data/data/ui/lib/servicestack-client.min.mjs → /llms/ui/lib/servicestack-client.mjs +0 -0
- {llms_py-2.0.9.data/data → llms}/ui/lib/vue-router.min.mjs +0 -0
- {llms_py-2.0.9.dist-info → llms_py-3.0.10.dist-info}/WHEEL +0 -0
- {llms_py-2.0.9.dist-info → llms_py-3.0.10.dist-info}/top_level.txt +0 -0
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
.prose :where(h4 strong):not(:where([class~="not-prose"] *)) {font-weight: 700 }
|
|
32
32
|
.prose :where(figure > *):not(:where([class~="not-prose"] *)) {margin-top: 0;margin-bottom: 0 }
|
|
33
33
|
.prose :where(figcaption):not(:where([class~="not-prose"] *)) {color: var(--tw-prose-captions);font-size: .875em;line-height: 1.4285714;margin-top: .8571429em }
|
|
34
|
-
.prose :where(code):not(:where([class~="not-prose"] *)) {color: #3b82f6;font-weight: 400;font-size: .875em;background-color: #eff6ff;border:1px solid #3b83f680;border-radius: .25rem;padding: .2rem .25rem .1rem .25rem
|
|
34
|
+
.prose :where(code):not(:where([class~="not-prose"] *)) {color: #3b82f6;font-weight: 400;font-size: .875em;background-color: #eff6ff;border:1px solid #3b83f680;border-radius: .25rem;padding: .2rem .25rem .1rem .25rem}
|
|
35
35
|
.prose :where(code):not(:where([class~="not-prose"] *)):before {content: "" }
|
|
36
36
|
.prose :where(code):not(:where([class~="not-prose"] *)):after {content: "" }
|
|
37
37
|
.prose :where(a code):not(:where([class~="not-prose"] *)) {color: var(--tw-prose-links) }
|
|
@@ -94,16 +94,18 @@
|
|
|
94
94
|
border-left-style: solid;
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
.dark .prose :
|
|
97
|
+
.dark .prose :where(td):not(:where([class~="not-prose"] *)) {
|
|
98
98
|
color: rgb(209 213 219); /*text-gray-300*/
|
|
99
99
|
}
|
|
100
100
|
.dark .prose :where(h1,h2,h3,h4,h5,h6,th):not(:where([class~="not-prose"] *)) {
|
|
101
101
|
color: rgb(243 244 246); /*text-gray-100*/
|
|
102
102
|
}
|
|
103
|
-
.dark .prose :where(code):not(:where([class~="not-prose"] *))
|
|
103
|
+
.dark .prose :where(code):not(:where([class~="not-prose"] *)),
|
|
104
|
+
.dark .message em {
|
|
104
105
|
background-color: rgb(30 58 138); /*text-blue-900*/
|
|
105
106
|
color: rgb(243 244 246); /*text-gray-100*/
|
|
106
107
|
}
|
|
108
|
+
|
|
107
109
|
.dark .prose :where(pre code):not(:where([class~="not-prose"] *)) {
|
|
108
110
|
background-color: unset;
|
|
109
111
|
}
|
|
@@ -130,10 +132,6 @@
|
|
|
130
132
|
.not-prose { max-width: unset; }
|
|
131
133
|
.prose-table { max-width: 56rem; width: 56rem; padding-left: 1px; overflow-x: auto; }
|
|
132
134
|
.hide-h2+h2 { display:none }
|
|
133
|
-
.hljs, .prose :where(pre):not(:where([class~="not-prose"] *)) .hljs {
|
|
134
|
-
color: var(--tw-prose-pre-code) !important;
|
|
135
|
-
background-color: var(--tw-prose-pre-bg) !important;
|
|
136
|
-
}
|
|
137
135
|
@media (min-width: 1024px) {
|
|
138
136
|
.lg\:prose-xl {
|
|
139
137
|
font-size: 1.25rem;
|
|
@@ -285,6 +283,12 @@
|
|
|
285
283
|
.prose pre::-webkit-scrollbar-thumb, .prose code::-webkit-scrollbar-thumb {
|
|
286
284
|
background-color: rgb(100 116 139);
|
|
287
285
|
}
|
|
286
|
+
.dark .prose pre::-webkit-scrollbar, .dark .prose code::-webkit-scrollbar {
|
|
287
|
+
background: #111827;
|
|
288
|
+
}
|
|
289
|
+
.dark .prose pre::-webkit-scrollbar-thumb, .dark .prose code::-webkit-scrollbar-thumb {
|
|
290
|
+
background-color: rgb(71 85 105);
|
|
291
|
+
}
|
|
288
292
|
|
|
289
293
|
.html-format {
|
|
290
294
|
max-width: unset;
|
|
@@ -340,3 +344,125 @@ h1:hover .header-anchor, h1 .header-anchor:focus, h2:hover .header-anchor, h2 .h
|
|
|
340
344
|
margin: 1rem 0rem;
|
|
341
345
|
line-height: 1;
|
|
342
346
|
}
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
/* Chat-specific styles */
|
|
350
|
+
.prose {
|
|
351
|
+
max-width: none;
|
|
352
|
+
}
|
|
353
|
+
.prose > pre {
|
|
354
|
+
margin-top: 0;
|
|
355
|
+
margin-bottom: 0;
|
|
356
|
+
}
|
|
357
|
+
.prose pre {
|
|
358
|
+
background-color: #1f2937;
|
|
359
|
+
color: #f9fafb;
|
|
360
|
+
border-radius: 0.5rem;
|
|
361
|
+
padding: 1rem;
|
|
362
|
+
overflow-x: auto;
|
|
363
|
+
}
|
|
364
|
+
.prose code {
|
|
365
|
+
/*background-color: #f3f4f6;*/
|
|
366
|
+
/*color: #1f2937;*/
|
|
367
|
+
padding: 0.125rem 0.25rem;
|
|
368
|
+
border-radius: 0.25rem;
|
|
369
|
+
font-size: 0.875em;
|
|
370
|
+
}
|
|
371
|
+
.prose pre code {
|
|
372
|
+
background-color: transparent;
|
|
373
|
+
color: inherit;
|
|
374
|
+
padding: 0;
|
|
375
|
+
}
|
|
376
|
+
.prose blockquote {
|
|
377
|
+
border-left: 4px solid #e5e7eb;
|
|
378
|
+
padding-left: 1rem;
|
|
379
|
+
font-style: italic;
|
|
380
|
+
color: #6b7280;
|
|
381
|
+
}
|
|
382
|
+
.prose table {
|
|
383
|
+
border-collapse: collapse;
|
|
384
|
+
width: 100%;
|
|
385
|
+
}
|
|
386
|
+
.prose th,
|
|
387
|
+
.prose td {
|
|
388
|
+
border: 1px solid #e5e7eb;
|
|
389
|
+
padding: 0.5rem;
|
|
390
|
+
text-align: left;
|
|
391
|
+
}
|
|
392
|
+
.prose th {
|
|
393
|
+
background-color: #f9fafb;
|
|
394
|
+
font-weight: 600;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
pre {
|
|
398
|
+
overflow-x: auto;
|
|
399
|
+
font-weight: 400;
|
|
400
|
+
font-size: .875em;
|
|
401
|
+
line-height: 1.7142857;
|
|
402
|
+
margin-top: 1.7142857em;
|
|
403
|
+
margin-bottom: 1.7142857em;
|
|
404
|
+
border-radius: .375rem;
|
|
405
|
+
padding: .8571429em 1.1428571em;
|
|
406
|
+
max-width: calc(100vw - 1rem);
|
|
407
|
+
min-width: fit-content;
|
|
408
|
+
background-color: #282c34;
|
|
409
|
+
}
|
|
410
|
+
pre code.hljs {
|
|
411
|
+
display: block;
|
|
412
|
+
overflow-x: auto;
|
|
413
|
+
padding: 1em;
|
|
414
|
+
}
|
|
415
|
+
.message pre {
|
|
416
|
+
max-width: 100%;
|
|
417
|
+
min-width: auto;
|
|
418
|
+
}
|
|
419
|
+
.message pre code.hljs {
|
|
420
|
+
overflow-x: unset;
|
|
421
|
+
width: 100%;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
/* highlight.js - vs.css */
|
|
425
|
+
.hljs {background:white;color:black}
|
|
426
|
+
.hljs-comment,.hljs-quote,.hljs-variable{color:#008000}
|
|
427
|
+
.hljs-keyword,.hljs-selector-tag,.hljs-built_in,.hljs-name,.hljs-tag{color:#00f}
|
|
428
|
+
.hljs-string,.hljs-title,.hljs-section,.hljs-attribute,.hljs-literal,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-addition{color:#a31515}
|
|
429
|
+
.hljs-deletion,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-meta{color:#2b91af}
|
|
430
|
+
.hljs-doctag{color:#808080}
|
|
431
|
+
.hljs-attr{color: #f00}
|
|
432
|
+
.hljs-symbol,.hljs-bullet,.hljs-link{color:#00b0e8}
|
|
433
|
+
.hljs-emphasis{font-style:italic}
|
|
434
|
+
.hljs-strong{font-weight:bold}
|
|
435
|
+
|
|
436
|
+
/* https://unpkg.com/@highlightjs/cdn-assets/styles/atom-one-dark.min.css */
|
|
437
|
+
pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}
|
|
438
|
+
.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#c678dd}
|
|
439
|
+
.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst,.hljs-tag{color:#e06c75}
|
|
440
|
+
.hljs-literal{color:#56b6c2}
|
|
441
|
+
.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#98c379}
|
|
442
|
+
.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#d19a66}
|
|
443
|
+
.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#61aeee}
|
|
444
|
+
.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}
|
|
445
|
+
.hljs-link{text-decoration:underline}
|
|
446
|
+
|
|
447
|
+
/* Dark mode overrides for Chat-specific styles */
|
|
448
|
+
.dark .prose blockquote {
|
|
449
|
+
border-left-color: #374151;
|
|
450
|
+
color: #9ca3af;
|
|
451
|
+
}
|
|
452
|
+
.dark .prose th,
|
|
453
|
+
.dark .prose td {
|
|
454
|
+
border-color: #374151;
|
|
455
|
+
}
|
|
456
|
+
.dark .prose th {
|
|
457
|
+
background-color: #1f2937;
|
|
458
|
+
}
|
|
459
|
+
.dark .prose td {
|
|
460
|
+
background-color: #111827;
|
|
461
|
+
}
|
|
462
|
+
.hljs-comment, .hljs-quote {
|
|
463
|
+
color: rgb(148 163 184); /*text-slate-400*/
|
|
464
|
+
}
|
|
465
|
+
.dark .prose > pre, .dark .prose pre code.hljs {
|
|
466
|
+
background-color: #111827 !important;
|
|
467
|
+
color: #f3f4f6;
|
|
468
|
+
}
|
llms/ui/utils.mjs
ADDED
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
import { toRaw } from "vue"
|
|
2
|
+
import { rightPart, toDate } from "@servicestack/client"
|
|
3
|
+
|
|
4
|
+
export function toJsonArray(json) {
|
|
5
|
+
try {
|
|
6
|
+
return json ? JSON.parse(json) : []
|
|
7
|
+
} catch (e) {
|
|
8
|
+
return []
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function toJsonObject(json) {
|
|
13
|
+
try {
|
|
14
|
+
return json ? JSON.parse(json) : null
|
|
15
|
+
} catch (e) {
|
|
16
|
+
return null
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function storageArray(key, save) {
|
|
21
|
+
if (save && Array.isArray(save)) {
|
|
22
|
+
localStorage.setItem(key, JSON.stringify(save))
|
|
23
|
+
}
|
|
24
|
+
return toJsonArray(localStorage.getItem(key)) ?? []
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function storageObject(key, save) {
|
|
28
|
+
if (typeof save == 'object') {
|
|
29
|
+
localStorage.setItem(key, JSON.stringify(save))
|
|
30
|
+
}
|
|
31
|
+
return toJsonObject(localStorage.getItem(key)) ?? {}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function fileToBase64(file) {
|
|
35
|
+
return new Promise((resolve, reject) => {
|
|
36
|
+
const reader = new FileReader()
|
|
37
|
+
reader.readAsDataURL(file) //= "data:…;base64,…"
|
|
38
|
+
reader.onload = () => {
|
|
39
|
+
resolve(rightPart(reader.result, ',')) // strip prefix
|
|
40
|
+
}
|
|
41
|
+
reader.onerror = err => reject(err)
|
|
42
|
+
})
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function fileToDataUri(file) {
|
|
46
|
+
return new Promise((resolve, reject) => {
|
|
47
|
+
const reader = new FileReader()
|
|
48
|
+
reader.readAsDataURL(file) //= "data:…;base64,…"
|
|
49
|
+
reader.onload = () => resolve(reader.result)
|
|
50
|
+
reader.onerror = err => reject(err)
|
|
51
|
+
})
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export function serializedClone(obj) {
|
|
55
|
+
try {
|
|
56
|
+
return JSON.parse(JSON.stringify(obj))
|
|
57
|
+
} catch (e) {
|
|
58
|
+
console.warn('Deep cloning failed, returning original value:', e)
|
|
59
|
+
return obj
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export function deepClone(o) {
|
|
64
|
+
if (o === null || typeof o !== 'object') return o
|
|
65
|
+
|
|
66
|
+
// Handle Array objects
|
|
67
|
+
if (Array.isArray(o)) {
|
|
68
|
+
return o.map(x => deepClone(x))
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (typeof structuredClone === 'function') { // available (modern browsers, Node.js 17+)
|
|
72
|
+
try {
|
|
73
|
+
return structuredClone(o)
|
|
74
|
+
} catch (e) {
|
|
75
|
+
console.warn('structuredClone failed, falling back to JSON:', e)
|
|
76
|
+
console.log(o)
|
|
77
|
+
// console.log(JSON.stringify(o, undefined, 2))
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Fallback to JSON stringify/parse for older environments
|
|
82
|
+
return serializedClone(o)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export function toModelInfo(model) {
|
|
86
|
+
if (!model) return undefined
|
|
87
|
+
const props = ['id', 'name', 'provider', 'cost', 'modalities']
|
|
88
|
+
const to = {}
|
|
89
|
+
props.forEach(k => to[k] = toRaw(model[k]))
|
|
90
|
+
return deepClone(to)
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export function pluralize(word, count) {
|
|
94
|
+
return count === 1 ? word : word + 's'
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
const currFmt2 = new Intl.NumberFormat(undefined, { style: 'currency', currency: 'USD', maximumFractionDigits: 2 })
|
|
98
|
+
const currFmt6 = new Intl.NumberFormat(undefined, { style: 'currency', currency: 'USD', maximumFractionDigits: 6 })
|
|
99
|
+
|
|
100
|
+
export function tokenCost(price, tokens = 1000000) {
|
|
101
|
+
if (!price) return ''
|
|
102
|
+
var ret = currFmt2.format(parseFloat(price) * (tokens / 1000000))
|
|
103
|
+
return ret.endsWith('.00') ? ret.slice(0, -3) : ret
|
|
104
|
+
}
|
|
105
|
+
export function tokenCostLong(price, tokens = 1000000) {
|
|
106
|
+
if (!price) return ''
|
|
107
|
+
const ret = currFmt6.format(parseFloat(price) * (tokens / 1000000))
|
|
108
|
+
return ret.endsWith('.000000') ? ret.slice(0, -7) : ret
|
|
109
|
+
}
|
|
110
|
+
export function formatCost(cost) {
|
|
111
|
+
if (!cost) return ''
|
|
112
|
+
return currFmt2.format(parseFloat(cost))
|
|
113
|
+
}
|
|
114
|
+
export function tokensTitle(usage) {
|
|
115
|
+
let title = []
|
|
116
|
+
if (usage.tokens && usage.price) {
|
|
117
|
+
const msg = parseFloat(usage.price) > 0
|
|
118
|
+
? `${usage.tokens} tokens @ ${usage.price} = ${tokenCostLong(usage.price, usage.tokens)}`
|
|
119
|
+
: `${usage.tokens} tokens`
|
|
120
|
+
const duration = usage.duration ? ` in ${usage.duration}ms` : ''
|
|
121
|
+
title.push(msg + duration)
|
|
122
|
+
}
|
|
123
|
+
return title.join('\n')
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
// Accessible in views via $fmt
|
|
128
|
+
export function utilsFormatters() {
|
|
129
|
+
function relativeTime(timestamp) {
|
|
130
|
+
const now = new Date()
|
|
131
|
+
const date = new Date(timestamp)
|
|
132
|
+
const diffInSeconds = Math.floor((now - date) / 1000)
|
|
133
|
+
|
|
134
|
+
if (diffInSeconds < 60) return 'Just now'
|
|
135
|
+
if (diffInSeconds < 3600) return `${Math.floor(diffInSeconds / 60)}m ago`
|
|
136
|
+
if (diffInSeconds < 86400) return `${Math.floor(diffInSeconds / 3600)}h ago`
|
|
137
|
+
if (diffInSeconds < 604800) return `${Math.floor(diffInSeconds / 86400)}d ago`
|
|
138
|
+
|
|
139
|
+
return date.toLocaleDateString()
|
|
140
|
+
}
|
|
141
|
+
function costLong(cost) {
|
|
142
|
+
if (!cost) return ''
|
|
143
|
+
const ret = currFmt6.format(parseFloat(cost))
|
|
144
|
+
return ret.endsWith('.000000') ? ret.slice(0, -7) : ret
|
|
145
|
+
}
|
|
146
|
+
function statsTitle(stats) {
|
|
147
|
+
let title = []
|
|
148
|
+
// Each stat on its own line
|
|
149
|
+
if (stats.cost) {
|
|
150
|
+
title.push(`Total Cost: ${costLong(stats.cost)}`)
|
|
151
|
+
}
|
|
152
|
+
if (stats.inputTokens) {
|
|
153
|
+
title.push(`Input Tokens: ${stats.inputTokens}`)
|
|
154
|
+
}
|
|
155
|
+
if (stats.outputTokens) {
|
|
156
|
+
title.push(`Output Tokens: ${stats.outputTokens}`)
|
|
157
|
+
}
|
|
158
|
+
if (stats.requests) {
|
|
159
|
+
title.push(`Requests: ${stats.requests}`)
|
|
160
|
+
}
|
|
161
|
+
if (stats.duration) {
|
|
162
|
+
title.push(`Duration: ${stats.duration}ms`)
|
|
163
|
+
}
|
|
164
|
+
return title.join('\n')
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
function time(timestamp) {
|
|
168
|
+
return new Date(timestamp).toLocaleTimeString([], {
|
|
169
|
+
hour: '2-digit',
|
|
170
|
+
minute: '2-digit'
|
|
171
|
+
})
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
function shortDate(ts) {
|
|
175
|
+
if (!ts) return ''
|
|
176
|
+
const date = typeof ts === 'number' ? new Date(ts * 1000) : new Date(ts)
|
|
177
|
+
return date.toLocaleDateString(undefined, {
|
|
178
|
+
month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit'
|
|
179
|
+
})
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
function date(d) {
|
|
183
|
+
date = toDate(d)
|
|
184
|
+
return date.toLocaleDateString(undefined, {
|
|
185
|
+
month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit'
|
|
186
|
+
})
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
return {
|
|
191
|
+
currFmt: currFmt2,
|
|
192
|
+
tokenCost,
|
|
193
|
+
tokenCostLong,
|
|
194
|
+
tokensTitle,
|
|
195
|
+
cost: formatCost,
|
|
196
|
+
costLong,
|
|
197
|
+
statsTitle,
|
|
198
|
+
relativeTime,
|
|
199
|
+
time,
|
|
200
|
+
pluralize,
|
|
201
|
+
shortDate,
|
|
202
|
+
date,
|
|
203
|
+
}
|
|
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
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Returns an ever-increasing unique integer id.
|
|
234
|
+
*/
|
|
235
|
+
export const nextId = (() => {
|
|
236
|
+
let last = 0 // cache of the last id that was handed out
|
|
237
|
+
return () => {
|
|
238
|
+
const now = Date.now() // current millisecond timestamp
|
|
239
|
+
last = (now > last) ? now : last + 1
|
|
240
|
+
return last
|
|
241
|
+
}
|
|
242
|
+
})();
|
|
243
|
+
|
|
244
|
+
export function utilsFunctions() {
|
|
245
|
+
return {
|
|
246
|
+
nextId,
|
|
247
|
+
toJsonArray,
|
|
248
|
+
toJsonObject,
|
|
249
|
+
storageArray,
|
|
250
|
+
storageObject,
|
|
251
|
+
fileToBase64,
|
|
252
|
+
fileToDataUri,
|
|
253
|
+
serializedClone,
|
|
254
|
+
deepClone,
|
|
255
|
+
toModelInfo,
|
|
256
|
+
pluralize,
|
|
257
|
+
isHtml,
|
|
258
|
+
htmlFormatClasses,
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: llms-py
|
|
3
|
+
Version: 3.0.10
|
|
4
|
+
Summary: A lightweight CLI tool and OpenAI-compatible server for querying multiple Large Language Model (LLM) providers
|
|
5
|
+
Home-page: https://github.com/ServiceStack/llms
|
|
6
|
+
Author: ServiceStack
|
|
7
|
+
Author-email: ServiceStack <team@servicestack.net>
|
|
8
|
+
Maintainer-email: ServiceStack <team@servicestack.net>
|
|
9
|
+
License-Expression: BSD-3-Clause
|
|
10
|
+
Project-URL: Homepage, https://github.com/ServiceStack/llms
|
|
11
|
+
Project-URL: Documentation, https://github.com/ServiceStack/llms#readme
|
|
12
|
+
Project-URL: Repository, https://github.com/ServiceStack/llms
|
|
13
|
+
Project-URL: Bug Reports, https://github.com/ServiceStack/llms/issues
|
|
14
|
+
Keywords: llm,ai,openai,anthropic,google,gemini,groq,mistral,ollama,cli,server,chat,completion
|
|
15
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: Intended Audience :: System Administrators
|
|
18
|
+
Classifier: Operating System :: OS Independent
|
|
19
|
+
Classifier: Programming Language :: Python :: 3
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.7
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
26
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
27
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
|
|
28
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
29
|
+
Classifier: Topic :: System :: Systems Administration
|
|
30
|
+
Classifier: Topic :: Utilities
|
|
31
|
+
Classifier: Environment :: Console
|
|
32
|
+
Requires-Python: >=3.7
|
|
33
|
+
Description-Content-Type: text/markdown
|
|
34
|
+
License-File: LICENSE
|
|
35
|
+
Requires-Dist: aiohttp
|
|
36
|
+
Dynamic: author
|
|
37
|
+
Dynamic: home-page
|
|
38
|
+
Dynamic: license-file
|
|
39
|
+
Dynamic: requires-python
|
|
40
|
+
|
|
41
|
+
# llms.py
|
|
42
|
+
|
|
43
|
+
Lightweight CLI, API and ChatGPT-like alternative to Open WebUI for accessing multiple LLMs, entirely offline, with all data kept private in browser storage.
|
|
44
|
+
|
|
45
|
+
[llmspy.org](https://llmspy.org)
|
|
46
|
+
|
|
47
|
+
[](https://llmspy.org)
|
|
48
|
+
|
|
49
|
+
GitHub: [llmspy.org](https://github.com/ServiceStack/llmspy.org)
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
llms/__init__.py,sha256=DKwTZDsyYL_wHe7yvLw49Nf8PSgPSyWaeVdotUqSvrQ,84
|
|
2
|
+
llms/__main__.py,sha256=hrBulHIt3lmPm1BCyAEVtB6DQ0Hvc3gnIddhHCmJasg,151
|
|
3
|
+
llms/db.py,sha256=oozp5I5lECVO8oZEFwcZl3ES5mARqWeR1BkoqG5kSqM,11687
|
|
4
|
+
llms/index.html,sha256=nGk1Djtn9p7l6LuKp4Kg0JIB9fCzxtTWXFfmDb4ggpc,1658
|
|
5
|
+
llms/llms.json,sha256=NEr9kJRkUGZ2YZHbWC-haGPlVVL2Qtnx4kKZENGH1wk,11494
|
|
6
|
+
llms/main.py,sha256=ZSRfpbTGMJjU_H65Iz4I6aDBmEQjFnfUwSGRr4SJfQg,169748
|
|
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
|
+
llms/extensions/app/README.md,sha256=TKoblZpHlheLCh_dfXOxqTc5OvxlgMBa-vKo8Hqb2gg,1370
|
|
11
|
+
llms/extensions/app/__init__.py,sha256=aU8Bfliw--Xj1bsKL3PSoX6MY1ZNgweNyMWS1V_YG4s,20855
|
|
12
|
+
llms/extensions/app/db.py,sha256=CqpHReXXjrLXXNxINo-wsnBJenKZVVHKlWlhtXFWj08,21503
|
|
13
|
+
llms/extensions/app/ui/Recents.mjs,sha256=2ypAKUp9_Oqcive1nUWZ8I2PQTBomBg_Pkjygi4oPgs,9261
|
|
14
|
+
llms/extensions/app/ui/index.mjs,sha256=sB9176LLNuKFsZ28yL-tROA6J4xePNtvxtSrzFcinRo,13271
|
|
15
|
+
llms/extensions/app/ui/threadStore.mjs,sha256=CLlD-1HBO1yhZBHLfL0ZdA4quT4R07qr1JW4a8igVNc,12287
|
|
16
|
+
llms/extensions/core_tools/CALCULATOR.md,sha256=pJRtCVF01BgxFrSNh2Ys_lrRi3SFwLgJzAX93AGh93Q,1944
|
|
17
|
+
llms/extensions/core_tools/__init__.py,sha256=Y5ZlcSg5yVXxIGX_FVbDcHyeXx3ex_rzRQ2hli6Nk38,23280
|
|
18
|
+
llms/extensions/core_tools/ui/index.mjs,sha256=KycJ2FcQ6BieBY7fjWGxVBGHN6WuFx712OFrO6flXww,31770
|
|
19
|
+
llms/extensions/core_tools/ui/codemirror/codemirror.css,sha256=60lOqXLSZh74b39qxlbdZ4bXIeScnBtG4euWfktvm_M,8720
|
|
20
|
+
llms/extensions/core_tools/ui/codemirror/codemirror.js,sha256=7cA89SlK249o7tVfiEWIiqDEA6ZEWxX4CoZmofVA14s,402008
|
|
21
|
+
llms/extensions/core_tools/ui/codemirror/addon/edit/closebrackets.js,sha256=FDwwFMKSVPNTHMML5tkCBQhLz8Ns_6b5sqRv1CpAviA,7123
|
|
22
|
+
llms/extensions/core_tools/ui/codemirror/addon/edit/closetag.js,sha256=b74rk8wXRNnhStHWE0SffhbfTCqihC9ljvwXq_Zi-FA,8544
|
|
23
|
+
llms/extensions/core_tools/ui/codemirror/addon/edit/continuelist.js,sha256=a6nNlSi3Tn929LnOntBne_7XBX0areAFAYU2jP0OouM,3989
|
|
24
|
+
llms/extensions/core_tools/ui/codemirror/addon/edit/matchbrackets.js,sha256=nSOhd_Hk0H46zDfCEP--TBwutNVbvlTBbT5609BNBAE,6815
|
|
25
|
+
llms/extensions/core_tools/ui/codemirror/addon/edit/matchtags.js,sha256=Jj11L4ULIIkPBQb8snewlLR0E4aSpYtF17m7A-IKoAw,2358
|
|
26
|
+
llms/extensions/core_tools/ui/codemirror/addon/edit/trailingspace.js,sha256=oNLAGW2PSZHNWPMgSY967Olx5QLkgR7PWMta-OgwB8Y,1006
|
|
27
|
+
llms/extensions/core_tools/ui/codemirror/addon/selection/active-line.js,sha256=OvvPeINcm9w0LjmSxT2bdChnImE7saitydFA7chzfug,2509
|
|
28
|
+
llms/extensions/core_tools/ui/codemirror/addon/selection/mark-selection.js,sha256=W5xqADH-iVZB8ushmN8lkux2mmaF1rsQ8_m5Kngi4oY,3849
|
|
29
|
+
llms/extensions/core_tools/ui/codemirror/addon/selection/selection-pointer.js,sha256=_df_U9DKeWxeN5LOtQY8hNBzW8rxmKHAbHiIDxxmSiI,3295
|
|
30
|
+
llms/extensions/core_tools/ui/codemirror/doc/docs.css,sha256=apFfZ7aIURmhMA5bPWqPasrUeNQQbyIj3RQ8A5cwV94,3315
|
|
31
|
+
llms/extensions/core_tools/ui/codemirror/doc/source_sans.woff,sha256=4ppXym_xSqFSK1sYxUPXogFs3Xu6YyHWBN-jUZ8Osec,29448
|
|
32
|
+
llms/extensions/core_tools/ui/codemirror/mode/clike/clike.js,sha256=BYoKZKIGseTbzBmm_6QBWoS7a_4T0LqFdovhHe9bTtI,37362
|
|
33
|
+
llms/extensions/core_tools/ui/codemirror/mode/javascript/index.html,sha256=K5xIggY1lgSYrcM9UhLcniq6G5zM_4Jl29cb_1YvHFQ,4668
|
|
34
|
+
llms/extensions/core_tools/ui/codemirror/mode/javascript/javascript.js,sha256=9do6jQ3GPCXs0-d8rPV89EMd8Lq_WU_TsZwrHT4imic,40636
|
|
35
|
+
llms/extensions/core_tools/ui/codemirror/mode/javascript/typescript.html,sha256=38VEYk6oEcuTMvAP18XpxZmrcX5HOzewZGHZalYjt3E,1610
|
|
36
|
+
llms/extensions/core_tools/ui/codemirror/mode/python/python.js,sha256=GaWco4et2wTpUALJrb4rjCMUJ85JNprFNxB-MIimlHw,14984
|
|
37
|
+
llms/extensions/core_tools/ui/codemirror/theme/dracula.css,sha256=Av32BJYI3djQ189kA7blslEzB0Dfw5N3T2i7ZHJ7PG4,2042
|
|
38
|
+
llms/extensions/core_tools/ui/codemirror/theme/mocha.css,sha256=0Y1y9DUgzBSakbXep55HuqOYiPMC-YK3xjVQBiwUQ4g,2402
|
|
39
|
+
llms/extensions/gallery/README.md,sha256=zif27qiMef1dBboMEPvTJqPDnLvrqntraVSw8oQ-1RM,2985
|
|
40
|
+
llms/extensions/gallery/__init__.py,sha256=24cABEIyqD0zLi32Jrqxoe-qdsS_q4mdJK7NgS0SiEY,1756
|
|
41
|
+
llms/extensions/gallery/db.py,sha256=IgiwBnqdGf0GYWCltphLD0NWS_MnbPDpRUJszh2_DW0,9032
|
|
42
|
+
llms/extensions/gallery/ui/index.mjs,sha256=ieslBFVadnzS7LYecvFh19T9r0Ff8OAdwHCWWoV9lsc,28297
|
|
43
|
+
llms/extensions/katex/README.md,sha256=fD_0riNXrKW0SfehifIc3jnXKg9diQdlXVq5X_e1zTc,1473
|
|
44
|
+
llms/extensions/katex/__init__.py,sha256=CvEe9CPtzoANc4AFuxZTbrJZdggoWLuKnENKfEdncPQ,206
|
|
45
|
+
llms/extensions/katex/ui/README.md,sha256=Xkjgncuvv4WT4TzNX4muWHYKJOwZ-kSpNnyveLlJDNU,7268
|
|
46
|
+
llms/extensions/katex/ui/index.mjs,sha256=K54EGfcnQwvqmPiJAMgNplnq1t9AaCHsXvTcVBdbl_4,2829
|
|
47
|
+
llms/extensions/katex/ui/katex-swap.css,sha256=TFnBXg_P8omwxMkHbFFw7jRpnB11EGzV-z2NdUVi_x4,31769
|
|
48
|
+
llms/extensions/katex/ui/katex-swap.min.css,sha256=Fsj_aVHG8yCYtx4Zifq8j5Vl73MhOT-jUFEzrwwr-pM,23712
|
|
49
|
+
llms/extensions/katex/ui/katex.css,sha256=4UJ6yBPVaG2svf0OK6NvOK-NnIhG4M3i3B7L7VvKgmQ,31789
|
|
50
|
+
llms/extensions/katex/ui/katex.js,sha256=PWy90_IeY834xVXGb85bYKRc5gvaKq6dgIBNwjEPmJE,622633
|
|
51
|
+
llms/extensions/katex/ui/katex.min.css,sha256=4Yn9AjiBGYnDZG3Ovai8DPsex5G3nmDPnRjwWknIoBY,23732
|
|
52
|
+
llms/extensions/katex/ui/katex.min.js,sha256=a5CUQ-bI9uXSTMSHL-kJpUdwdiBHrpXj809V7C5vbDo,276705
|
|
53
|
+
llms/extensions/katex/ui/katex.min.mjs,sha256=KmfOVfgFWMddI3U_-lA5BJP_E0D_tnol5rdQNbUlKho,267755
|
|
54
|
+
llms/extensions/katex/ui/katex.mjs,sha256=1qAo5SYTN8yq6uIYB1alXX-BYw_JDnTSdOsCRNxPuJ8,610115
|
|
55
|
+
llms/extensions/katex/ui/contrib/auto-render.js,sha256=H1SS5odSobH7zVAIQModAZHCYTH9w2OBtJOgLGuNS88,10508
|
|
56
|
+
llms/extensions/katex/ui/contrib/auto-render.min.js,sha256=u1PrlTOUUxquNv3VNwZcQkTrhUKQGjzpFGAdkyZ1uKw,3467
|
|
57
|
+
llms/extensions/katex/ui/contrib/auto-render.mjs,sha256=QtMkCZDUVDbW3U37Nud5JEjNwrYCxHrEJP0Jsek9vf4,6840
|
|
58
|
+
llms/extensions/katex/ui/contrib/copy-tex.js,sha256=Kgy7CBbqP6RViyyBD4M_2cLik3CImMSh5ZBhfJqyBOs,4507
|
|
59
|
+
llms/extensions/katex/ui/contrib/copy-tex.min.js,sha256=B3cK-QlDod4aEBB5S8eManNG1G1I-2PjXMdrp2uCdgQ,1673
|
|
60
|
+
llms/extensions/katex/ui/contrib/copy-tex.mjs,sha256=0De3xM3HNCAoWlgOW4-ctEGtZ-Zh_RrTHdRarc8Ee_U,3640
|
|
61
|
+
llms/extensions/katex/ui/contrib/mathtex-script-type.js,sha256=ZCkQ0MIYkiD02D9XnYxhHvDC10xDDFxfXQrKhhxcaxI,4207
|
|
62
|
+
llms/extensions/katex/ui/contrib/mathtex-script-type.min.js,sha256=B5myi4vIBiH8htnO5Fz9HKSZ9309bXGw7jBxWPw7ULk,1290
|
|
63
|
+
llms/extensions/katex/ui/contrib/mathtex-script-type.mjs,sha256=V_UZsiMDB8dNCAIPUshZyWn1Un60DSS7irPiFngI1cY,751
|
|
64
|
+
llms/extensions/katex/ui/contrib/mhchem.js,sha256=ra4CiB7OdQzkMKpbJQxU4j4OPRhUx_80jftes02vaHo,78705
|
|
65
|
+
llms/extensions/katex/ui/contrib/mhchem.min.js,sha256=n4fl6cOEoWBHLQBFA1qGQfYBM1jt2z7OcIY0pQ-UakA,33712
|
|
66
|
+
llms/extensions/katex/ui/contrib/mhchem.mjs,sha256=xdS2inkhwhj_3PTXwXkA14Ove0hDBROBDLFOeRpUq7Q,75577
|
|
67
|
+
llms/extensions/katex/ui/contrib/render-a11y-string.js,sha256=pfoN2Rsz0kzmtqstQTKCWEKqKGwUsED2aNzZJxdJc4c,23938
|
|
68
|
+
llms/extensions/katex/ui/contrib/render-a11y-string.min.js,sha256=eQIPbKYpwHvd8iccbQV-jlXo4lFCikk96DnIlPcTFg0,8454
|
|
69
|
+
llms/extensions/katex/ui/contrib/render-a11y-string.mjs,sha256=Xfgg3ZN2vSPvQk5c_EVQXVeuZG-wxVM3WOetUeBIiTs,20283
|
|
70
|
+
llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.ttf,sha256=aFNIQLz90r_7bw6N60hoTdAefwTqKBMmdXevuQbeHRM,63632
|
|
71
|
+
llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff,sha256=MNqR6EyJP4deJSaJ-uvcWQsocRReitx_mp1NvYzgslE,33516
|
|
72
|
+
llms/extensions/katex/ui/fonts/KaTeX_AMS-Regular.woff2,sha256=DN04fJWQoan5eUVgAi27WWVKfYbxh6oMgUla1C06cwg,28076
|
|
73
|
+
llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.ttf,sha256=B9jjA85PwStLtU8QBBcN0ZCh89tF1AD-aAYN8-CJcmg,12368
|
|
74
|
+
llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff,sha256=Gua9dHVZDpfn8UWongnM3jIvemvAuRYHsci47igpD-0,7716
|
|
75
|
+
llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Bold.woff2,sha256=3ncB5Czx9M8LdmwD-yeXcgfu4vT9XXb6ghiEBtpD6kw,6912
|
|
76
|
+
llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.ttf,sha256=7Qt0Ny_u_LucBmay4hDaN7fkn6f7vz7rEdtfaT2s-7c,12344
|
|
77
|
+
llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff,sha256=M5jdAjAlV6eT8oY_iOAtls4Q3yq_-gfI6fqQd1EW5lw,7656
|
|
78
|
+
llms/extensions/katex/ui/fonts/KaTeX_Caligraphic-Regular.woff2,sha256=XVPnCtYHwjUhYt7J4JI_tU7Nr6zL9gTNjc99APrLmJs,6908
|
|
79
|
+
llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.ttf,sha256=kWPfnHEiQy5klbQin6kHHPmuhqdYrl78SSTsLhptvOE,19584
|
|
80
|
+
llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff,sha256=m-fOuIAEq4rRJAgiRvv8ykCR42OF1Oxu0d9nN12tUPs,13296
|
|
81
|
+
llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Bold.woff2,sha256=dERO_Vk8AF4_RXO0RSRwTArwqTf-kRzKnpQGjQ0UDT8,11348
|
|
82
|
+
llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.ttf,sha256=Hm-VeekOLKw3-PYKWXxDbgdcEUOFZSt8vrDewEISkbM,19572
|
|
83
|
+
llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff,sha256=Xih1O-cX2sl_VZ9JvBC-nPPBJN3KvaZlnRHLaP68ZGM,13208
|
|
84
|
+
llms/extensions/katex/ui/fonts/KaTeX_Fraktur-Regular.woff2,sha256=UYFNJw0G_wJV26B5mZT6TYyE0R8JlR1HWV9Kux82Atw,11316
|
|
85
|
+
llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.ttf,sha256=E4rCjRZjswN-nF9SNx-lxj2DJPSjjSLNVz5uo6P9DPg,51336
|
|
86
|
+
llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff,sha256=x2xdaWKX1RucsWOcfaQzTw597IG0KxEhO14l72cbuCI,29912
|
|
87
|
+
llms/extensions/katex/ui/fonts/KaTeX_Main-Bold.woff2,sha256=D2DRuJeTjskYyM4HMJJBG6-UOPZzlGVpP_GLD50gsCE,25324
|
|
88
|
+
llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.ttf,sha256=cO4fZKIPIEjCGUDvRtAUT9IVuqlTymmv0eMemFRPcI8,32968
|
|
89
|
+
llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff,sha256=pvfsDYRqx62XWtuJWcN-1JuUrLxK5DbbnOniAofkpkw,19412
|
|
90
|
+
llms/extensions/katex/ui/fonts/KaTeX_Main-BoldItalic.woff2,sha256=mc1Co8By2Rjy9EmEqAfPeqFuE1Rf0IdfwHxsZfmecVs,16780
|
|
91
|
+
llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.ttf,sha256=DYWufMMPI3kKfxpYxKES_cqKrnaba6EUKa8dmLG2yzo,33580
|
|
92
|
+
llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff,sha256=8dbvhvOxGlKL1RhRmb0kQ-yysN6tltiGdLWiwSviS98,19676
|
|
93
|
+
llms/extensions/katex/ui/fonts/KaTeX_Main-Italic.woff2,sha256=l0ecpszpBqvJYeyslvql-couYbjnZw1HWCa83umnwmc,16988
|
|
94
|
+
llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.ttf,sha256=0DMvUoaDcP2Drn-kZHD5DI8uqy_PErxPiAgLNAyVqDA,53580
|
|
95
|
+
llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff,sha256=xjaNh-iho6XTN2I9g9jcS4aPJCqa1HYjfW-NHg8WjNw,30772
|
|
96
|
+
llms/extensions/katex/ui/fonts/KaTeX_Main-Regular.woff2,sha256=wjQs2Lhp4BdSqTIdwXIT_EDU0Ex5aIwdQ_LPMWq9eGY,26272
|
|
97
|
+
llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.ttf,sha256=-Td6sCcc2lmvJLz_vUak0MijVy_6_bs43irV6nsNXuU,31196
|
|
98
|
+
llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff,sha256=hQwK9cIjhJf-uvXkYdiAv0WMNB9C9PMw8bGrVpixmY4,18668
|
|
99
|
+
llms/extensions/katex/ui/fonts/KaTeX_Math-BoldItalic.woff2,sha256=3Ec0TbtstbZVyEYNVh9N9fUBuQyAStPGzsZf4yI1GrE,16400
|
|
100
|
+
llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.ttf,sha256=CM6Y5RsE1YlFowHmOeAraZivKf39Yae4r90Hu_xHnUo,31308
|
|
101
|
+
llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff,sha256=io0kRYE3GRK48_WiPiQ3yypZzZvK67A0bnIsBXN6JXE,18748
|
|
102
|
+
llms/extensions/katex/ui/fonts/KaTeX_Math-Italic.woff2,sha256=evWMXsjxMqLd3pAnxteBTezOTTuCKhEZKkKiDi6XMmQ,16440
|
|
103
|
+
llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.ttf,sha256=Hs4D95-VJ31X3H9rQ1p04TebDUYQSoUwKGtg_0k2nqA,24504
|
|
104
|
+
llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff,sha256=7OA8_YPiLCEs3vZv64RC0loIO-uYjbPxiD8_lzjXULo,14408
|
|
105
|
+
llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Bold.woff2,sha256=6ZrlEUS_EjLvzBv-Wt02JixoZrD6qyT6dXQOG5hXemI,12216
|
|
106
|
+
llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.ttf,sha256=OTHdgfrthroCG7K73Db1vtmjjWtPQHespZsmWqGwIIM,22364
|
|
107
|
+
llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff,sha256=ke5nUAzAEpqgrOOsXGH_FpIQLw8x0CtpNH-6Ndy3W_I,14112
|
|
108
|
+
llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Italic.woff2,sha256=ALJqyCXiCVBWOW4FU7isJtP4rRWMOCbii0xFs4XEcUo,12028
|
|
109
|
+
llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.ttf,sha256=826ol-GfSi5XHR6QDk43EOQ43rBahCSGBFugo-YWpK0,19436
|
|
110
|
+
llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff,sha256=EeTcimRx_21u5WHVPRD96PdInnmCV_9EnF03wZdDVgU,12316
|
|
111
|
+
llms/extensions/katex/ui/fonts/KaTeX_SansSerif-Regular.woff2,sha256=aOjHPvQq_TzOxYvw-6MCzORIk45_wCCl4x-KlS7uE0I,10344
|
|
112
|
+
llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.ttf,sha256=HGfwaP6ouwm_CZwIixz2S9J1Fqbgf0aENEhzVku2amc,16648
|
|
113
|
+
llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff,sha256=2WzfKzvdTWSo_V90pMRn8SOopzkxzUNYifCP-vm_lHo,10588
|
|
114
|
+
llms/extensions/katex/ui/fonts/KaTeX_Script-Regular.woff2,sha256=A21OlRSbaf-bzAzVV3Hv6yX_o5Ryk-aazXjVrDKMaEs,9644
|
|
115
|
+
llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.ttf,sha256=lbbS8aUBc7_tuMY-HRyZsQQn0KTfQgHLRFE7ImlRois,12228
|
|
116
|
+
llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff,sha256=yUPMmGOE9Z6GvqX9fcUKnE3-Vnp8BetA1nkHIN6tl8k,6496
|
|
117
|
+
llms/extensions/katex/ui/fonts/KaTeX_Size1-Regular.woff2,sha256=a0fEAWa22-IaXfyncYQT8hR_0jmb4bpgXYrTnO3yXf4,5468
|
|
118
|
+
llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.ttf,sha256=prIJn7VVxg46DbOgiELr8dcyxutOS_RJE2E77U_E45s,11508
|
|
119
|
+
llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff,sha256=IBTFI8MhC8wWZkjE1MxX8Ft0ffB6JCd79xxR5n3Hnj0,6188
|
|
120
|
+
llms/extensions/katex/ui/fonts/KaTeX_Size2-Regular.woff2,sha256=0ExUIZ-ersbU1P1C37KHhZdaR5TWsvxx5Wa5zW24Qt0,5208
|
|
121
|
+
llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.ttf,sha256=UA4E1U8NUWZjMsnSCJqoA74iqoeOylOeWfpTxuUisII,7588
|
|
122
|
+
llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff,sha256=ara2Lpti2uLADdkPeRvRCVC-Dsw0kNfWBF9Rwuj-CUk,4420
|
|
123
|
+
llms/extensions/katex/ui/fonts/KaTeX_Size3-Regular.woff2,sha256=c9WRJxsWBJYMsQu5D-4CFnCvcpcBfg6YSAszLRH1GZU,3624
|
|
124
|
+
llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.ttf,sha256=xkc2fR3U4WJGhxfQIOH8Dx3Fwm6_3_vlUmFxO_iMWHc,10364
|
|
125
|
+
llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff,sha256=mfnGdQtInJRivwSQC9P5Od-bgpM52qqqme9Ulc3d6lg,5980
|
|
126
|
+
llms/extensions/katex/ui/fonts/KaTeX_Size4-Regular.woff2,sha256=pK99QURAocF5CCXPtwDPnPQ7DyxLBPDrxSMBGtmFPsA,4928
|
|
127
|
+
llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.ttf,sha256=8B8-h9nGphwMCBzrV3q9hk6wCmEvesFiDdaRX60u9ao,27556
|
|
128
|
+
llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff,sha256=4U_tArGrp86fWv1YRLXQMhsiNR_rxyDg3ouHI1J2Cfc,16028
|
|
129
|
+
llms/extensions/katex/ui/fonts/KaTeX_Typewriter-Regular.woff2,sha256=cdUX1ngneHz6vfGGkUzDNY7aU543kxlB8rL9SiH2jAs,13568
|
|
130
|
+
llms/extensions/providers/__init__.py,sha256=C5zOBQEOB2L96rAZdjV42fPVk_dZxSh2Dv30Kb1w3lE,534
|
|
131
|
+
llms/extensions/providers/anthropic.py,sha256=LAOdpa_cP1zBUvSQ-ct3kVjRga-nPJ1U_KBb99N4IEk,10429
|
|
132
|
+
llms/extensions/providers/cerebras.py,sha256=HaeFW0GwbD6V6Zrrwqyv78kQb0VXg9oHmykvJfIOOYE,1417
|
|
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
|
+
llms/extensions/providers/openrouter.py,sha256=5SfCJKo1aGKoDGez6HXYQe9elMMo9sSEDFqqdxamAgA,3330
|
|
138
|
+
llms/extensions/providers/zai.py,sha256=WPJlDxmnjuhxlgWhUXw2MYqgEKYfy14wVQbpQyMMlbU,7736
|
|
139
|
+
llms/extensions/system_prompts/README.md,sha256=ayr18lnSsGp62bunC6kxkvcSvZki775rbZ-8VoMDQEc,597
|
|
140
|
+
llms/extensions/system_prompts/__init__.py,sha256=TZy1CS2dPkBNBA_Ovf9BlVetZqTt2NgnsrZi6Mtg_C0,1535
|
|
141
|
+
llms/extensions/system_prompts/ui/index.mjs,sha256=_pVCreAebSzE9dzcHF2kiYODwP-fDHCqtUQB-X5Io9Q,12107
|
|
142
|
+
llms/extensions/system_prompts/ui/prompts.json,sha256=t5DD3bird-87wFa4OlW-bC2wdoYDrVzfyc8TO5OaotI,128489
|
|
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=F4MaotQJDO60uHJBC6tA4dlQE1aPOR28tvLU670sLIs,6541
|
|
147
|
+
llms/ui/app.css,sha256=vfXErYVdVlE3pL8oZ-2G_OC-_reJzmaL0p91EVv48uo,186490
|
|
148
|
+
llms/ui/ctx.mjs,sha256=X4scgXEQ9bMUfQl36sM4A3o2Ufad3LRwItxfmSu1xwc,12838
|
|
149
|
+
llms/ui/fav.svg,sha256=_R6MFeXl6wBFT0lqcUxYQIDWgm246YH_3hSTW0oO8qw,734
|
|
150
|
+
llms/ui/index.mjs,sha256=7GMbFyG3L4k6dxSrQYQ0BLzqL976xw5HeaqKco0THHA,4296
|
|
151
|
+
llms/ui/markdown.mjs,sha256=ZeGXxX4_UEUCVkLZzmwXlqWBfReSFzBivdxNu8uSgFk,6648
|
|
152
|
+
llms/ui/tailwind.input.css,sha256=xOrT0m8HCZRHhnPv4K43HyQCTO_0SpP-tYvxpP8jzYY,17027
|
|
153
|
+
llms/ui/typography.css,sha256=6o7pbMIamRVlm2GfzSStpcOG4T5eFCK_WcQ3RIHKAsU,19587
|
|
154
|
+
llms/ui/utils.mjs,sha256=lurZdnTk4ngR7ziWKeUNvpWVmBg2V6phqngBYWcCL5U,7483
|
|
155
|
+
llms/ui/lib/chart.js,sha256=dx8FdDX0Rv6OZtZjr9FQh5h-twFsKjfnb-FvFlQ--cU,196176
|
|
156
|
+
llms/ui/lib/charts.mjs,sha256=OPFAifcA4MPRv8pw6I7glVh7Xccv8guio0k35zPBDIY,926
|
|
157
|
+
llms/ui/lib/color.js,sha256=DDG7Pr-qzJHTPISZNSqP_qJR8UflKHEc_56n6xrBugQ,8273
|
|
158
|
+
llms/ui/lib/highlight.min.mjs,sha256=sG7wq8bF-IKkfie7S4QSyh5DdHBRf0NqQxMOEH8-MT0,127458
|
|
159
|
+
llms/ui/lib/idb.min.mjs,sha256=CeTXyV4I_pB5vnibvJuyXdMs0iVF2ZL0Z7cdm3w_QaI,3853
|
|
160
|
+
llms/ui/lib/marked.min.mjs,sha256=QRHb_VZugcBJRD2EP6gYlVFEsJw5C2fQ8ImMf_pA2_s,39488
|
|
161
|
+
llms/ui/lib/servicestack-client.mjs,sha256=UVafVbzhJ_0N2lzv7rlzIbzwnWpoqXxGk3N3FSKgOOc,54534
|
|
162
|
+
llms/ui/lib/servicestack-vue.mjs,sha256=4XxQLaKm26aexbY7lYTSMRmjZmBRzZgq7F8GZquuGrs,216947
|
|
163
|
+
llms/ui/lib/vue-router.min.mjs,sha256=fR30GHoXI1u81zyZ26YEU105pZgbbAKSXbpnzFKIxls,30418
|
|
164
|
+
llms/ui/lib/vue.min.mjs,sha256=T1TVu9SFEoLArPLKKEp6gsj_eScmHl5TkUebxGK6ldk,166282
|
|
165
|
+
llms/ui/lib/vue.mjs,sha256=75FuLhUTPk19sncwNIrm0BGEL0_Qw298-_v01fPWYoI,542872
|
|
166
|
+
llms/ui/modules/icons.mjs,sha256=LGcH0ys0QLS2ZKCO42qHpwPYbBV_EssoWLezU4XZEzU,27751
|
|
167
|
+
llms/ui/modules/layout.mjs,sha256=8pAxs8bedQI3b3eRA9nrfpLZznLmrpp4BZvigYAQjpQ,12572
|
|
168
|
+
llms/ui/modules/model-selector.mjs,sha256=6U4rAZ7vmQELFRQGWk4YEtq02v3lyHdMq6yUOp-ArXg,43184
|
|
169
|
+
llms/ui/modules/chat/ChatBody.mjs,sha256=5yWjo6tWmcKidDpRvKFeHqx3lXO3DB-3rTyXY72gB4U,49122
|
|
170
|
+
llms/ui/modules/chat/SettingsDialog.mjs,sha256=HMBJTwrapKrRIAstIIqp0QlJL5O-ho4hzgvfagPfsX8,19930
|
|
171
|
+
llms/ui/modules/chat/index.mjs,sha256=lfSbERMaM3bLsKhdJJPWwL4-FGr8U_ftlvqW5vC3T1s,39762
|
|
172
|
+
llms_py-3.0.10.dist-info/licenses/LICENSE,sha256=bus9cuAOWeYqBk2OuhSABVV1P4z7hgrEFISpyda_H5w,1532
|
|
173
|
+
llms_py-3.0.10.dist-info/METADATA,sha256=IWZDosCH-2jQpFVfSZ4YEUHqOkph9QdILhpQspYVfCc,2192
|
|
174
|
+
llms_py-3.0.10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
175
|
+
llms_py-3.0.10.dist-info/entry_points.txt,sha256=WswyE7PfnkZMIxboC-MS6flBD6wm-CYU7JSUnMhqMfM,40
|
|
176
|
+
llms_py-3.0.10.dist-info/top_level.txt,sha256=gC7hk9BKSeog8gyg-EM_g2gxm1mKHwFRfK-10BxOsa4,5
|
|
177
|
+
llms_py-3.0.10.dist-info/RECORD,,
|