llms-py 3.0.0b6__py3-none-any.whl → 3.0.0b8__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/__pycache__/main.cpython-314.pyc +0 -0
- llms/{ui/modules/analytics.mjs → extensions/analytics/ui/index.mjs} +55 -164
- llms/extensions/app/__init__.py +519 -0
- llms/extensions/app/__pycache__/__init__.cpython-314.pyc +0 -0
- llms/extensions/app/__pycache__/db.cpython-314.pyc +0 -0
- llms/extensions/app/__pycache__/db_manager.cpython-314.pyc +0 -0
- llms/extensions/app/db.py +641 -0
- llms/extensions/app/db_manager.py +195 -0
- llms/extensions/app/requests.json +9073 -0
- llms/extensions/app/threads.json +15290 -0
- llms/{ui/modules/threads → extensions/app/ui}/Recents.mjs +82 -55
- llms/{ui/modules/threads → extensions/app/ui}/index.mjs +83 -20
- llms/extensions/app/ui/threadStore.mjs +407 -0
- llms/extensions/core_tools/__init__.py +598 -0
- llms/extensions/core_tools/__pycache__/__init__.cpython-314.pyc +0 -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/doc/docs.css +225 -0
- llms/extensions/core_tools/ui/codemirror/doc/source_sans.woff +0 -0
- llms/extensions/core_tools/ui/codemirror/lib/codemirror.css +344 -0
- llms/extensions/core_tools/ui/codemirror/lib/codemirror.js +9884 -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/__init__.py +61 -0
- llms/extensions/gallery/__pycache__/__init__.cpython-314.pyc +0 -0
- llms/extensions/gallery/__pycache__/db.cpython-314.pyc +0 -0
- llms/extensions/gallery/db.py +298 -0
- llms/extensions/gallery/ui/index.mjs +481 -0
- llms/extensions/katex/__init__.py +6 -0
- llms/extensions/katex/__pycache__/__init__.cpython-314.pyc +0 -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 +18 -0
- llms/extensions/providers/__pycache__/__init__.cpython-314.pyc +0 -0
- llms/extensions/providers/__pycache__/anthropic.cpython-314.pyc +0 -0
- llms/extensions/providers/__pycache__/chutes.cpython-314.pyc +0 -0
- llms/extensions/providers/__pycache__/google.cpython-314.pyc +0 -0
- llms/{providers → extensions/providers}/__pycache__/nvidia.cpython-314.pyc +0 -0
- llms/{providers → extensions/providers}/__pycache__/openai.cpython-314.pyc +0 -0
- llms/extensions/providers/__pycache__/openrouter.cpython-314.pyc +0 -0
- llms/{providers → extensions/providers}/anthropic.py +45 -5
- llms/{providers → extensions/providers}/chutes.py +21 -18
- llms/{providers → extensions/providers}/google.py +99 -27
- llms/{providers → extensions/providers}/nvidia.py +6 -8
- llms/{providers → extensions/providers}/openai.py +3 -6
- llms/{providers → extensions/providers}/openrouter.py +12 -10
- llms/extensions/system_prompts/__init__.py +45 -0
- llms/extensions/system_prompts/__pycache__/__init__.cpython-314.pyc +0 -0
- llms/extensions/system_prompts/ui/index.mjs +285 -0
- llms/extensions/system_prompts/ui/prompts.json +1067 -0
- llms/extensions/tools/__init__.py +5 -0
- llms/extensions/tools/__pycache__/__init__.cpython-314.pyc +0 -0
- llms/{ui/modules/tools.mjs → extensions/tools/ui/index.mjs} +12 -10
- llms/index.html +26 -38
- llms/llms.json +20 -1
- llms/main.py +845 -245
- llms/providers-extra.json +0 -32
- llms/ui/App.mjs +18 -20
- llms/ui/ai.mjs +38 -15
- llms/ui/app.css +1440 -59
- llms/ui/ctx.mjs +154 -18
- llms/ui/index.mjs +17 -14
- llms/ui/lib/vue.min.mjs +10 -9
- llms/ui/lib/vue.mjs +1796 -1635
- llms/ui/markdown.mjs +4 -2
- llms/ui/modules/chat/ChatBody.mjs +101 -334
- llms/ui/modules/chat/HomeTools.mjs +12 -0
- llms/ui/modules/chat/SettingsDialog.mjs +1 -1
- llms/ui/modules/chat/index.mjs +351 -314
- llms/ui/modules/layout.mjs +2 -26
- llms/ui/modules/model-selector.mjs +3 -3
- llms/ui/tailwind.input.css +35 -1
- llms/ui/utils.mjs +33 -3
- {llms_py-3.0.0b6.dist-info → llms_py-3.0.0b8.dist-info}/METADATA +1 -1
- llms_py-3.0.0b8.dist-info/RECORD +198 -0
- llms/providers/__pycache__/anthropic.cpython-314.pyc +0 -0
- llms/providers/__pycache__/chutes.cpython-314.pyc +0 -0
- llms/providers/__pycache__/google.cpython-314.pyc +0 -0
- llms/providers/__pycache__/openrouter.cpython-314.pyc +0 -0
- llms/ui/modules/threads/threadStore.mjs +0 -586
- llms_py-3.0.0b6.dist-info/RECORD +0 -66
- {llms_py-3.0.0b6.dist-info → llms_py-3.0.0b8.dist-info}/WHEEL +0 -0
- {llms_py-3.0.0b6.dist-info → llms_py-3.0.0b8.dist-info}/entry_points.txt +0 -0
- {llms_py-3.0.0b6.dist-info → llms_py-3.0.0b8.dist-info}/licenses/LICENSE +0 -0
- {llms_py-3.0.0b6.dist-info → llms_py-3.0.0b8.dist-info}/top_level.txt +0 -0
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { inject, computed } from "vue"
|
|
2
2
|
|
|
3
3
|
const Tools = {
|
|
4
4
|
template: `
|
|
@@ -11,8 +11,8 @@ const Tools = {
|
|
|
11
11
|
</div>
|
|
12
12
|
|
|
13
13
|
<div class="grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4">
|
|
14
|
-
<div v-for="tool in ($state.tools
|
|
15
|
-
class="bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700
|
|
14
|
+
<div v-for="tool in (Array.isArray($state.tools) ? $state.tools : []).filter(x => x.function)" :key="tool.function.name"
|
|
15
|
+
class="bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 overflow-hidden flex flex-col">
|
|
16
16
|
|
|
17
17
|
<div class="p-4 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/50">
|
|
18
18
|
<div class="font-bold text-lg text-gray-900 dark:text-gray-100 font-mono break-all">
|
|
@@ -100,7 +100,7 @@ const ToolSelector = {
|
|
|
100
100
|
setup() {
|
|
101
101
|
const ctx = inject('ctx')
|
|
102
102
|
|
|
103
|
-
const availableTools = computed(() => ctx.state.tools
|
|
103
|
+
const availableTools = computed(() => (Array.isArray(ctx.state.tools) ? ctx.state.tools : []).filter(x => x.function))
|
|
104
104
|
|
|
105
105
|
function isToolActive(name) {
|
|
106
106
|
const only = ctx.prefs.onlyTools
|
|
@@ -136,6 +136,8 @@ const ToolSelector = {
|
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
export default {
|
|
139
|
+
order: 10 - 100,
|
|
140
|
+
|
|
139
141
|
install(ctx) {
|
|
140
142
|
|
|
141
143
|
ctx.components({
|
|
@@ -143,12 +145,12 @@ export default {
|
|
|
143
145
|
ToolSelector,
|
|
144
146
|
})
|
|
145
147
|
|
|
146
|
-
const svg = (attrs, title) => `<svg ${attrs} xmlns="http://www.w4.org/2000/svg" viewBox="0 0 24 24">${title ? "<title>" + title + "</title>" : ''}<path fill="currentColor" d="M5.33 3.272a3.5 3.5 0 0 1 4.472 4.473L20.647 18.59l-2.122 2.122L7.68 9.867a3.5 3.5 0 0 1-4.472-4.474L5.444 7.63a1.5 1.5 0 0 0 2.121-2.121zm10.367 1.883l3.182-1.768l1.414 1.415l-1.768 3.182l-1.768.353l-2.12 2.121l-1.415-1.414l2.121-2.121zm-7.071 7.778l2.121 2.122l-4.95 4.95A1.5 1.5 0 0 1 3.58 17.99l.097-.107z"/></svg>`
|
|
148
|
+
const svg = (attrs, title) => `<svg ${attrs} xmlns="http://www.w4.org/2000/svg" viewBox="0 0 24 24">${title ? "<title>" + title + "</title>" : ''}<path fill="currentColor" d="M5.33 3.272a3.5 3.5 0 0 1 4.472 4.473L20.647 18.59l-2.122 2.122L7.68 9.867a3.5 3.5 0 0 1-4.472-4.474L5.444 7.63a1.5 1.5 0 0 0 2.121-2.121zm10.367 1.883l3.182-1.768l1.414 1.415l-1.768 3.182l-1.768.353l-2.12 2.121l-1.415-1.414l2.121-2.121zm-7.071 7.778l2.121 2.122l-4.95 4.95A1.5 1.5 0 0 1 3.58 17.99l.097-.107z" /></svg>`
|
|
147
149
|
|
|
148
150
|
ctx.setLeftIcons({
|
|
149
151
|
tools: {
|
|
150
152
|
component: {
|
|
151
|
-
template: svg(
|
|
153
|
+
template: svg(`@click="$ctx.togglePath('/tools')"`),
|
|
152
154
|
},
|
|
153
155
|
isActive({ path }) {
|
|
154
156
|
return path === '/tools'
|
|
@@ -160,7 +162,7 @@ export default {
|
|
|
160
162
|
tools: {
|
|
161
163
|
component: {
|
|
162
164
|
template: svg([
|
|
163
|
-
`@click
|
|
165
|
+
`@click="$ctx.toggleTop('ToolSelector')"`,
|
|
164
166
|
`:class="$prefs.onlyTools == null ? 'text-green-600 dark:text-green-300' : $prefs.onlyTools.length ? 'text-blue-600! dark:text-blue-300!' : ''"`
|
|
165
167
|
].join(' ')),
|
|
166
168
|
// , "{{$prefs.onlyTools == null ? 'Include All Tools' : $prefs.onlyTools.length ? 'Include Selected Tools' : 'All Tools Excluded'}}"
|
|
@@ -183,12 +185,12 @@ export default {
|
|
|
183
185
|
const prefs = ctx.prefs
|
|
184
186
|
if (prefs.onlyTools != null) {
|
|
185
187
|
if (Array.isArray(prefs.onlyTools)) {
|
|
186
|
-
request.metadata.
|
|
188
|
+
request.metadata.tools = prefs.onlyTools.length > 0
|
|
187
189
|
? prefs.onlyTools.join(',')
|
|
188
190
|
: 'none'
|
|
189
191
|
}
|
|
190
192
|
} else {
|
|
191
|
-
request.metadata.
|
|
193
|
+
request.metadata.tools = 'all'
|
|
192
194
|
}
|
|
193
195
|
})
|
|
194
196
|
|
|
@@ -197,6 +199,6 @@ export default {
|
|
|
197
199
|
|
|
198
200
|
async load(ctx) {
|
|
199
201
|
const ext = ctx.scope('tools')
|
|
200
|
-
ctx.state.tools = await ext.getJson('/')
|
|
202
|
+
ctx.state.tools = (await ext.getJson('/')).response || []
|
|
201
203
|
}
|
|
202
204
|
}
|
llms/index.html
CHANGED
|
@@ -23,48 +23,36 @@
|
|
|
23
23
|
cursor: pointer;
|
|
24
24
|
}
|
|
25
25
|
</style>
|
|
26
|
+
<script type="importmap"></script>
|
|
27
|
+
|
|
26
28
|
</head>
|
|
27
|
-
<script type="importmap">
|
|
28
|
-
{
|
|
29
|
-
"imports": {
|
|
30
|
-
"vue": "/ui/lib/vue.min.mjs",
|
|
31
|
-
"vue-router": "/ui/lib/vue-router.min.mjs",
|
|
32
|
-
"@servicestack/client": "/ui/lib/servicestack-client.mjs",
|
|
33
|
-
"@servicestack/vue": "/ui/lib/servicestack-vue.mjs",
|
|
34
|
-
"idb": "/ui/lib/idb.min.mjs",
|
|
35
|
-
"marked": "/ui/lib/marked.min.mjs",
|
|
36
|
-
"highlight.js": "/ui/lib/highlight.min.mjs",
|
|
37
|
-
"chart.js": "/ui/lib/chart.js",
|
|
38
|
-
"color.js": "/ui/lib/color.js",
|
|
39
|
-
"ctx.mjs": "/ui/ctx.mjs"
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
</script>
|
|
43
29
|
|
|
44
30
|
<body>
|
|
45
31
|
<div id="app"></div>
|
|
46
|
-
</body>
|
|
47
|
-
<script>
|
|
48
|
-
let colorScheme = location.search === "?dark"
|
|
49
|
-
? "dark"
|
|
50
|
-
: location.search === "?light"
|
|
51
|
-
? "light"
|
|
52
|
-
: localStorage.getItem('color-scheme')
|
|
53
|
-
let darkMode = colorScheme != null
|
|
54
|
-
? colorScheme === 'dark'
|
|
55
|
-
: window.matchMedia('(prefers-color-scheme: dark)').matches
|
|
56
|
-
let html = document.documentElement
|
|
57
|
-
html.classList.toggle('dark', darkMode)
|
|
58
|
-
html.style.setProperty('color-scheme', darkMode ? 'dark' : null)
|
|
59
|
-
if (localStorage.getItem('color-scheme') === null) {
|
|
60
|
-
localStorage.setItem('color-scheme', darkMode ? 'dark' : 'light')
|
|
61
|
-
}
|
|
62
|
-
</script>
|
|
63
|
-
<script type="module">
|
|
64
|
-
import { createContext } from '/ui/index.mjs'
|
|
65
32
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
33
|
+
<script>
|
|
34
|
+
let colorScheme = location.search === "?dark"
|
|
35
|
+
? "dark"
|
|
36
|
+
: location.search === "?light"
|
|
37
|
+
? "light"
|
|
38
|
+
: localStorage.getItem('color-scheme')
|
|
39
|
+
let darkMode = colorScheme != null
|
|
40
|
+
? colorScheme === 'dark'
|
|
41
|
+
: window.matchMedia('(prefers-color-scheme: dark)').matches
|
|
42
|
+
let html = document.documentElement
|
|
43
|
+
html.classList.toggle('dark', darkMode)
|
|
44
|
+
html.style.setProperty('color-scheme', darkMode ? 'dark' : null)
|
|
45
|
+
if (localStorage.getItem('color-scheme') === null) {
|
|
46
|
+
localStorage.setItem('color-scheme', darkMode ? 'dark' : 'light')
|
|
47
|
+
}
|
|
48
|
+
</script>
|
|
49
|
+
<script type="module">
|
|
50
|
+
import { createContext } from '/ui/index.mjs'
|
|
51
|
+
|
|
52
|
+
const context = await createContext()
|
|
53
|
+
context.app.mount('#app')
|
|
54
|
+
</script>
|
|
55
|
+
|
|
56
|
+
</body>
|
|
69
57
|
|
|
70
58
|
</html>
|
llms/llms.json
CHANGED
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
"restrict_to": "GITHUB_USERS"
|
|
10
10
|
}
|
|
11
11
|
},
|
|
12
|
+
"disable_extensions": [
|
|
13
|
+
"xmas",
|
|
14
|
+
"duckduckgo"
|
|
15
|
+
],
|
|
12
16
|
"defaults": {
|
|
13
17
|
"headers": {
|
|
14
18
|
"Content-Type": "application/json",
|
|
@@ -29,7 +33,7 @@
|
|
|
29
33
|
]
|
|
30
34
|
},
|
|
31
35
|
"image": {
|
|
32
|
-
"model": "
|
|
36
|
+
"model": "gemma-3-27b-it",
|
|
33
37
|
"messages": [
|
|
34
38
|
{
|
|
35
39
|
"role": "user",
|
|
@@ -107,6 +111,14 @@
|
|
|
107
111
|
},
|
|
108
112
|
"stream": false
|
|
109
113
|
},
|
|
114
|
+
"out:audio": {
|
|
115
|
+
"model": "gemini-2.5-flash-preview-tts",
|
|
116
|
+
"messages": [],
|
|
117
|
+
"modalities": [
|
|
118
|
+
"audio"
|
|
119
|
+
],
|
|
120
|
+
"stream": false
|
|
121
|
+
},
|
|
110
122
|
"check": {
|
|
111
123
|
"messages": [
|
|
112
124
|
{
|
|
@@ -241,6 +253,13 @@
|
|
|
241
253
|
"thinkingBudget": 1024,
|
|
242
254
|
"includeThoughts": true
|
|
243
255
|
},
|
|
256
|
+
"speech_config": {
|
|
257
|
+
"voiceConfig": {
|
|
258
|
+
"prebuiltVoiceConfig": {
|
|
259
|
+
"voiceName": "Kore"
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
},
|
|
244
263
|
"check": {
|
|
245
264
|
"messages": [
|
|
246
265
|
{
|